这里介绍三种:
group by rollup
group by cube
group by grouping sets
group by rollup:对 ROLLUP 后面括号里的 n 个字段或表达式组合做 GROUP BY 操作。最后将结果合并在一起。
eg:GROUP BY ROLLUP(A,B,C)
首先对(A,B,C)进行GROUP BY,然后对(A,B)进行GROUP BY,然后是(A)进行GROUP BY, 最后对全表进行GROUP BY操作。
group by cube:对 CUBE 后面括号里的 n 个字段或表达式组合做 GROUP BY 操作,最后将结果合并在一起。
eg:GROUP BY CUBE(A,B,C)
首先对(A,B,C)进行GROUP BY,然后依次对(A,B)、(A,C)、A、(B,C)、B、C进行GROUP BY,最后对全表进行GROUP BY操作。
group by grouping sets:对 GROUPING SETS 后面括号里的 n 个字段或表达式分别做 GROUP BY操作,最后将结果合并在一起。
eg:GROUP BY GROUPING SETS(A,B,C)
依次对C、B、A进行GROUP BY,最后将结果合并在一起。