group by grouping sets的使用

用来进行分组自定义汇总,可以来指定主要的总数组合。

group by grouping sets((list),(list),......),list是圆括号中的一个列序列,这个组个生成一个总数。要增加一个总和,必须增加一个null分组集。

举例:select * from te;

ID   T_CODE  T_NAME    T_AMOUNT     T_DEPT      T_PROJECT    T_TYPE

1          1               1                   10                   总部                    90                  0

2          2               2                   20                   总部                    70                  0

3          3               3                   30                   分1                     60                   0

4          4               4                   40                   分1                     50                   0

5          5               5                   50                   分2                     40                   0

6          6               6                   60                   分2                     30                   0

select t.t_dept, t.t_project,sum(t.t_amount) from te t  group byt.t_dept, t.t_project;

 t_dept t_project sum(t.t_amount)

  总部        90            10

  分2         30             60

  分1         50             40

  总部       70             20

  分2        40              50

  分1        60              30

select t.t_dept, t.t_project,sum(t.t_amount) from te t  group bygrouping sets ((t.t_dept, t.t_project), t.t_dept);

t_dept t_project  sum(t.t_amount)

分1      50          40

分1      60          30

分1                     70

分2      30          60

分2      40          50

分2                    110

总部     70         20

总部     90         10

总部                  30

select t.t_dept, t.t_project,sum(t.t_amount) from te t  group bygrouping sets ((t.t_dept, t.t_project), t.t_dept, null);

t_dept t_project  sum(t.t_amount)

分1      50          40

分1      60          30

分1                     70

分2      30          60

分2      40          50

分2                     110

总部    70           20

总部     90         10

总部                   30

                          210
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值