oracle的rollup,cube等相关基础

rollup (department_id, employee_id)
先是对department_id和employee_id 整体分组,然后再对department_id进行分组
之后再department_id(括号内第一个参数) 进行分组得出的结果做和


所以rollup的结果是有n+1层次的结果
第一层: department_id,employee_id
第二层: department_id
第三层: 对第二层的结果求和




rollup(a,b)   统计列包含:(a,b)、(a)、()
rollup(a,b,c) 统计列包含:(a,b,c)、(a,b)、(a)、()






cube(department_id ,employee_id)
先是对department_id 和employee_id整体分组,
然后对department_id进行分组,
之后再对employee_id分组,
最后求和
得出的结果有n+1个层次
第一层:department_id,employee_id
第二层:department_id    和  employee_id
第三层: 求和


cube(a,b)     统计列包含:(a,b)、(a)、(b)、()
cube(a,b,c)   统计列包含:(a,b,c)、(a,b)、(a,c)、(b,c)、(a)、(b)、(c)、()




grouping: 返回值是0或1 
grouping函数是用于显示该列值在分组时是否参与其中


对以上两个分组函数而言
第一层: 0 ,0
第二层: 对department_id 进行统计,则 0,1 相当于employee_id 参与了分组
         对employee_id 进行统计,则 1, 0  相当于department_id 参与了分组
第三层:1,1 统计求和,相当于department_id 和employee_id 均参与了分组




grouping set
将各分组项产生的结果union all起来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值