在sql sever2012中group by子句实例

本文介绍了 SQL Server 中 GROUP BY 语句的基本用法及 with CUBE 和 with ROLLUP 的区别。通过学校数据库的实例演示了如何使用这些功能来获取不同维度的数据汇总。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天学习sql sever练习了group by语句。基本语法:group by 分组表达式 with cube|rollup

group by中的列必须与select中的列名相同,从而进行分组。

group by进行多列分组按后面字段的优先级进行排列,即

group by a,b 先根据A排列,在根据B排列。依此同理

如果用with cube 在返回结果后不仅包含group by 的正常行还包含所有可能的组的汇总行,汇总行在结果中显示为NULL

如果用with rollup 在返回结果不仅包含正常行,还包含按层次结构顺序排列的汇总行

具体实例:

本练习中数据库school包含student、teacher、course、score四个表,具体如下



先搜索每班每门课的平均成绩,可:


其结果为:


如果加上with cube


结果为:


总共为10 行,它把每门课的平均成绩(1-3行)、每个班的平均成绩(5、10行)、所有人的平均成绩(4行)、每个班每门课的平均成绩(6-9行)全部显现出来。

如果用with rollup

其结果为:


共7行主要按照组内由最低级别到最高级别进行汇总,组的层次结构主要取决与指定组列的顺序。如果交换分组顺序如:


其结果为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值