打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
grouping?sets用法及跟group?by的关系

grouping sets用法及跟group by的关系

(2011-05-17 16:48:28)

test_a 表有4个字段:A,B,C,D 。字段A是指标,B、C、D是维度。

 

一般用group by的时候是这样的写法:

(1)

select a.b servcode,a.c gwid,a.d ismgacount,sum(a.a) mtcount
from test_a a group by a.b,a.c,a.d order by a.b,a.c,a.d;

 

如果用了group by,如下:

(2)

select a.b servcode,a.c gwid,a.d ismgacount,sum(a.a) mtcount
from test_a a group by grouping sets((a.b,a.c),a.d) order by a.b,a.c,a.d;

 

实际上,(2)执行的结果,跟(1)没多大关系,(2)执行的结果,实际上是等于将

下面(3),(4)的结果进行union all (自己在test_a里造点数,执行一下就明白的):

(3)

select a.b servcode,a.c gwid, ' ' ismgacount,sum(a.a) mtcount
from test_a a group by a.b,a.c order by a.b,a.c;

(4)

select ' ' servcode,' ' gwid,a.d ismgacount,sum(a.a) mtcount
from test_a a group by a.d order by a.d;

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
oracle拼接字段和group by的使用
sum over partition by 的用法
学生各门课程成绩统计SQL语句大全
group by 和 compute的区别
SQL语句各子句的执行顺序
利用分析函数在Oracle中分组排序取首条或末条记录行
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服