By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE table_name (col1 VARCHAR(10), col2 VARCHAR(10), col3 VARCHAR(10))
INSERT INTO table_name (col1, col2, col3)
SELECT 'aaa', 'mmm', 'xxx' FROM DUAL UNION ALL
SELECT 'aaa', 'mmm', 'yyy' FROM DUAL UNION ALL
SELECT 'aaa', 'nnn', 'xxx' FROM DUAL UNION ALL
SELECT 'aaa', 'nnn', 'yyy' FROM DUAL UNION ALL
SELECT 'bbb', 'mmm', 'xxx' FROM DUAL UNION ALL
SELECT 'bbb', 'mmm', 'yyy' FROM DUAL UNION ALL
SELECT 'bbb', 'nnn', 'xxx' FROM DUAL;
7 rows affected
SELECT col1,
col2,
GROUPING_ID(col1, col2),
COUNT(col3)
FROM table_name
GROUP BY ROLLUP(col1, col2);
COL1 | COL2 | GROUPING_ID(COL1,COL2) | COUNT(COL3) |
---|---|---|---|
aaa | mmm | 0 | 2 |
aaa | nnn | 0 | 2 |
aaa | null | 1 | 4 |
bbb | mmm | 0 | 2 |
bbb | nnn | 0 | 1 |
bbb | null | 1 | 3 |
null | null | 3 | 7 |