GBase 8a
其他
文章

GBase 8a OLAP函数(二)GROUP BY CUBE

发表于2024-04-02 15:44:0121次浏览1个评论

GROUP BY CUBE(A,B,C),首先会对(A、 B、 C)进行 GROUP BY,然后依次是(A、 B), (A、 C), (A), (B、C), (B), (C),然后对全表进行 GROUP BY 操作,最后将所有结果合并在一起(相当于 UNION ALL 操作)

 

举例:按照部门、职位统计工资

select deptno, job, sum(sal)

from emp

group by cube(deptno, job);

 

然后可以继续对小计和总计处理:

select 

case when job is null then

 nvl(deptno, '总计')

else

 nvl(deptno, '职位小计')

end as deptno, 

case when deptno is null then

 nvl(job, '')

else

 nvl(job, '部门小计')

end as job, 

sum(sal)

from emp

group by cube(deptno, job);

 

 

评论

登录后才可以发表评论
崔哥发表于 8个月前
翠葆参差竹径成。新荷跳雨泪珠倾。曲阑斜转小池亭。风约帘衣归燕急,水摇扇影戏鱼惊。柳梢残日弄微晴。