众所周知group by 是数据库用来分组的关键字,而rollup/cube 关键字却被忽略。
- ROLLUP,是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。
- CUBE,也是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。
- GROUPING 是一个聚合函数,它产生一个附加的列,当用 CUBE 或 ROLLUP 运算符添加行时,附加的列输出值为1,当所添加的行不是由 CUBE 或 ROLLUP 产生时,附加列值为0。
GROUPING:当column_name 列为附加值为1时该列显示‘合计。’
CASE GROUPING(column_name ) WHEN 0 THEN column_name ELSE ‘合计’ END ,
还有group by……with rollup;
该文章只为自己记忆方法,具体可以参考前辈们在网上发布的例子:
http://www.cnblogs.com/li-peng/p/3298303.html
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592371.html
http://honeybinshun.iteye.com/blog/1474242