用来进行分组自定义汇总,可以来指定主要的总数组合。
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