SQL查询统计

SQL> select a, b, sum(c), grouping(a), grouping(b), grouping(c) from test group by rollup(a, b, c);

A          B              SUM(C) GROUPING(A) GROUPING(B) GROUPING(C)
---------- ---------- ---------- ----------- ----------- -----------
a          aaa                10           0           0           0
a          aaa                20           0           0           0
a          aaa                30           0           0           1
a          bbb                30           0           0           0
a          bbb                40           0           0           0
a          bbb                70           0           0           1
a                            100           0           1           1
aa         ccc                50           0           0           0
aa         ccc                60           0           0           0
aa         ccc               110           0           0           1
aa         ddd                70           0           0           0
aa         ddd                70           0           0           1
aa                           180           0           1           1
                             280           1           1           1

14 rows selected

SQL> select a, b, sum(c), grouping(a), grouping(b), grouping(c) from test group by rollup(a, b, c) having grouping(c) = 1;

A          B              SUM(C) GROUPING(A) GROUPING(B) GROUPING(C)
---------- ---------- ---------- ----------- ----------- -----------
a          aaa                30           0           0           1
a          bbb                70           0           0           1
a                            100           0           1           1
aa         ccc               110           0           0           1
aa         ddd                70           0           0           1
aa                           180           0           1           1
                             280           1           1           1

7 rows selected

SQL> select a, b, sum(c), grouping(a), grouping(b) from test group by rollup(a, b);

A          B              SUM(C) GROUPING(A) GROUPING(B)
---------- ---------- ---------- ----------- -----------
a          aaa                30           0           0
a          bbb                70           0           0
a                            100           0           1
aa         ccc               110           0           0
aa         ddd                70           0           0
aa                           180           0           1
                             280           1           1

7 rows selected

SQL>  

原文地址:https://www.cnblogs.com/mingdep/p/2857759.html