sql serever 分类汇总 cube rollup 的使用方法

CUBE 与 ROLLUP的使用

基础

简介

CUBE更强大(显示的行数更多)

CUBE

  • groupby 提供的行,各个汇总行(子组合的汇总、汇总行–每个可能的组和子组)

ROLLUP

  • 会显示每个分类,除了 group by 提供的行还包括汇总行(每个可能的组没有子组 ,具体是哪个组与group by 后的字段顺序有关,也就是说汇总的依据与select 后面的行无关)

说明 使用方法

说明

代码一(针对 CUBE)
这里以查询teaching库中student表,统计各专业男生、女生的人数,每个专业学生人数和男生人数、女生总人数以及所有学生人数
这里是查询
代码二(针对 ROLLUP)
这里以查询teaching库中student表,统计各专业男生、女生的人数,每个专业的总人数和所有学生人数
代码一和代码二的差异体现在 第14行和第15行

use teaching 
select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by ssex,specialty
with cube

代码二

select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by specialty,ssex
with rollup

代码一运行图

cube
代码二运行图
rollup
rollup

进阶

简介

CUBE按第一个条件列排序,再按第二个条件列排序,以此类推
ROLLUP 只显示最高列
cube先按照 specialty 排序
代码三

use teaching 
select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by ssex,specialty
with cube

cube先按照 ssex排序
代码四

use teaching 
select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by specialty,ssex
with cube

运行三:
cube
运行4:
cube

代码5
rollup 按照 specity排序

select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by specialty,ssex
with rollup

代码6
rollup 按照 specialty排序

select specialty as 专业,ssex as 性别,count(*) as 人数
from student
group by ssex,specialty
with rollup

代码5运行
rollup
代码6运行
rollup

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值