GROUPING
返回一个位掩码,指示哪些 GROUP BY
表达式未包含在当前分组集内。位分配时,最右边的参数对应于最低有效位;每个位为 0 表示相应的表达式包含在生成当前结果行的分组集的分组标准中,为 1 表示未包含。
语法
GROUPING ( expr [, expr, ...] )
备注
GROUPING
只能与 GROUPING SETS
、ROLLUP
或 CUBE
一起使用,并且其参数必须位于分组集列表中。
参数
分组集项。
返回类型
UInt32。
示例
select a, b, grouping(a), grouping(b), grouping(a,b), grouping(b,a) from t group by grouping sets ((a,b),(a),(b), ()) ;
+------+------+-------------+-------------+----------------+----------------+
| a | b | grouping(a) | grouping(b) | grouping(a, b) | grouping(b, a) |
+------+------+-------------+-------------+----------------+----------------+
| NULL | A | 1 | 0 | 2 | 1 |
| a | NULL | 0 | 1 | 1 | 2 |
| b | A | 0 | 0 | 0 | 0 |
| NULL | NULL | 1 | 1 | 3 | 3 |
| a | A | 0 | 0 | 0 | 0 |
| b | B | 0 | 0 | 0 | 0 |
| b | NULL | 0 | 1 | 1 | 2 |
| a | B | 0 | 0 | 0 | 0 |
| NULL | B | 1 | 0 | 2 | 1 |
+------+------+-------------+-------------+----------------+----------------+