基于子字符串的记录分组 - Spark 大数据分析

retaliate2171 7 0 pdf 2024-07-07 03:07:40

8.5 基于部门的滚动求和

-- 计算每个部门内,按照员工姓名排序的薪资滚动和
select deptno, sal, sum(sal) over (partition by deptno order by ename) as s from emp;

-- 计算每个部门的总薪资
select deptno, sum(sal) over (partition by deptno) from emp;

8.6 获取当前行的相邻行数据

-- 使用 lead 和 lag 函数获取当前行的上一行和下一行的薪资信息
select ename, sal, lead(sal) over(order by sal) aaa, lag(sal) over(order by sal) bbb from emp;

8.7 基于月份统计连续三个月的总收入

-- 从月份、人员和收入数据表中,计算每个月以及其上一个月和下一个月的总收入
select 
  month, 
  sum(income) as 当月收入,
  lag(sum(income)) over(order by month) as 上月收入, 
  lead(sum(income)) over(order by month) as 下月收入 
from table 
group by month;

8.8 基于子字符串进行分组

-- 按照员工的雇佣年份对员工进行分组,并计算每个年份的平均薪资
Select to_char(hiredate,'yyyy'), avg(sal) from emp group by to_char(hiredate,'yyyy');

用户评论
请输入评论内容
评分:
暂无评论