Skip to content

Returns a bit mask indicating which GROUP BY expressions are not included in the current grouping set. Bits are assigned with the rightmost argument corresponding to the least-significant bit; each bit is 0 if the corresponding expression is included in the grouping criteria of the grouping set generating the current result row, and 1 if it is not included.

GROUPING ( expr [, expr, ...] )

Grouping sets items.

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 │
└──────┴──────┴─────────────┴─────────────┴────────────────┴────────────────┘