メインコンテンツまでスキップ

grouping

GROUPING

説明

列が集計列かどうかを示します。列が集計列である場合は0が返されます。それ以外の場合は1が返されます。

構文

GROUPING(col_expr)

パラメータ

col_expr: GROUP BY句の展開で指定された次元列の式リスト内で指定された式。

MySQL > select * from t;
+------+------+
| k1 | k2 |
+------+------+
| NULL | B |
| NULL | b |
| A | NULL |
| A | B |
| A | b |
| a | NULL |
| a | B |
| a | b |
+------+------+
8 rows in set (0.12 sec)

MySQL > SELECT k1, k2, GROUPING(k1), GROUPING(k2), COUNT(*) FROM t GROUP BY ROLLUP(k1, k2);
+------+------+--------------+--------------+----------+
| k1 | k2 | grouping(k1) | grouping(k2) | count(*) |
+------+------+--------------+--------------+----------+
| NULL | NULL | 1 | 1 | 8 |
| NULL | NULL | 0 | 1 | 2 |
| NULL | B | 0 | 0 | 1 |
| NULL | b | 0 | 0 | 1 |
| A | NULL | 0 | 1 | 3 |
| a | NULL | 0 | 1 | 3 |
| A | NULL | 0 | 0 | 1 |
| A | B | 0 | 0 | 1 |
| A | b | 0 | 0 | 1 |
| a | NULL | 0 | 0 | 1 |
| a | B | 0 | 0 | 1 |
| a | b | 0 | 0 | 1 |
+------+------+--------------+--------------+----------+
12 rows in set (0.12 sec)