oracle rollup 小计,Oracle Group By 用法之 —— Rollup (小计功能)

Oracle数据库中的rollup配合group by命令使用,可以提供信息汇总功能(与"小计"相似)

表B

C1 c2

2005-01-01 1

2005-01-01 3

2005-01-02 5

要求的处理后的数据

2005-01-01 4

2005-01-02 5

合计 9

试用一个Sql语句完成。

这时候我们如果用group by 的话,select c1,sum(c2) from 表B group by c1

得到如下:

2005-01-01 4

2005-01-02 5

如果这时候我们在group by里配合使用Rollup,就可以像excel一样,可以统计出指定列,或者多列的总数

SQL语句如下:

select c1,sum(c2) from 表B group by rollup(c1)

执行后结果如:

2005-01-01 4

2005-01-02 5

9

或者更好的

select nvl(to_char(c1,'yyyy-mm-dd'),'合计'),sum(c2)from 表B

group by rollup(c2)

这样得到的就会是

2005-01-01 4

2005-01-02 5

合计 9

PS:如果有多列要进行统计,只要在select后加上要显示的列就可以了,或者可以通过在rollup里面用 , 隔开多个列的字段名

select c1,sum(c2),c3,c4 from 表B group by rollup(c1,c3,c4)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值