我最近看了MICK的两本SQL教程,分别是《SQL基础教程》与《SQL进阶教程》,教材内容深入浅出,非常值得学习。
仅Oracle、SQL Server、DB2支持grouping
grouping运算符有三类:
rollup、cube、grouping sets
使用方式/书写格式为 group by rollup/cube/grouping sets
三者的区别在于:
rollup返回总体合计、第1个分组字段的小计、第2个字段的小计……第(n-1)个字段的小计、第n个字段的详细信息
cube返回总体合计、所有分组字段的小计、第n个字段的详细信息
grouping sets返回所有分组字段的小计
这三类运算符都可以与grouping搭配使用(判断是否为聚合记录,是返回1,不是返回0)
举例
(例子来自于[日]MICK的《SQL进阶教程》)
数据集
Id |
name |
cat |
price |
date |
商品编号 |
商品名称 |
商品分类 |
销售单价 |
登记日期 |
1 |
T恤 |
衣服 |
1000 |
2009/9/20 |
2 |
打孔器 |
办公用品 |
500 |
2009/9/11 |
3 |
运动T恤 |
衣服 |
4000 |
|
4 |
菜刀 |
厨房用具 |
3000 |
2009/9/20 |
5 |
高压锅 |
厨房用具 |