oracle中group by的高级应用

GROUP BY的语法:

select [filed1,filed2,...]聚合函数(filed),[grouping(filed),][grouping_id(filed1,filed2)]

from tabel_name

where condition

[group by {rollup|cube} (filed1,filed2) ]

[having condition]

[order by filed]

1.where和having的区别:

where和having都是用来筛选数据,但是where是针对原数据进行筛选,而having子句是针对汇总后的结果进行筛选

2.扩展用法:

a.使用rollup操作符:‘rollup’的意思是‘卷起,汇总’,它可以使在括号中的字段,按右到左的顺序分别froup后显示,类似我们用多个group by语句,然后union all起来;

b.使用cube操作符:cube意思是立方,使用该操作符可以对操作符内的字段,进行遍历组合汇总,将操作符内的字段进行不同的组合来进行分组;

c.使用grouping(filed)函数:

用来判断某行数据是不是按照rollup或cube进行汇总,如果判断的该参数为null则返回1,否则返回0

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值