维度分析函数-grouping sets

一、group sets
就是在进行数据分析的时候,可以通过一个select 语句查询多条 来自不同维度的数据汇总,进行数据分析

select ename,deptno,avg(sal) from emp group by ename,deptno grouping sets ((ename,deptno),ename,deptno,());

从四个维度来进行分析 avg(sal),薪资的平均值
(ename,dept):名字和部门
(ename):姓名
(dept):部门
():总的平均值
该函数只是为了简便操作,上面的hql 语句也可以通过

select ename,deptno,avg(sal) from emp group by ename,deptno
union 
select ename,null,avg(sal) from emp group by ename
union
select null,deptno,avg(sal) from emp group by deptno
union
select null,null,avg(sal) from emp;

在这里插入图片描述
但是比较烦的就是会出现null值,因为涉及UNION操作,所以为了遵循UNION对参与合并的数据集合的要求,GROUPING SETS会把在单个GROUP BY逻辑中没有参与GROUP BY的那一列置为NULL值,使它成为常量占位列。所以分析起来还是比较麻烦的。所以能尽量分开使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值