SQL Group by CUBE 和 ROLLUP 之间的区别
展开全部
ROLLUP ( )
生成简单的 GROUP BY 聚合行以及小计行或超聚合行,还生成一个总计行。
SELECT a, b, c, SUM ( <expression> )
FROM T
GROUP BY ROLLUP (a,b,c);
会为 (a, b, c)、 (a, b) 和 (a) 值的每个唯一组合生成一个带有小计的行。
还将计算一个总计行。
列是按照从右到左的顺序汇总的。
列的顺序会影响 ROLLUP 的输出分组,而且可能会影响结果集内的行数。
CUBE ( )
生成简单的 GROUP BY 聚合行、ROLLUP 超聚合行和交叉表格行。
SELECT a, b, c, SUM (<expression>)
FROM T
GROUP BY CUBE (a,b,c);
会为 (a, b, c)、 (a, b)、 (a, c)、 (b, c)、 (a)、 (b) 和 (c) 值的每个唯一组合生成一个带有小计的行,还会生成一个总计行。
列的顺序不影响 CUBE 的输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询