窗口函数之range的用法(读书笔记三)

--RANGE的具体用法
SELECT
emp_id,emp_name,dept_id,hire_date,salary,
--首先按dept_id进行分组,其次按照hire_date进行排序,然后再把入职时间小于等于自身的所有员工薪资进行累计
SUM(salary) OVER(PARTITION BY dept_id ORDER BY hire_date) sum_salary_part_order,
--按照dept_id进行分组,并统计该部门下所有员工的薪资
SUM(salary) OVER(PARTITION BY dept_id) sum_salary_part,
--直接按照hire_date进行分组,再把入职时间小于等于自身的所有员工薪资进行累计
SUM(salary) OVER(ORDER BY hire_date) sum_salary_order,
--后面均为首先按dept_id进行分组,其次按照hire_date进行排序,且所有统计不能跨越其所在分区,故不再重复
--且由于是逻辑范围,因此在PRECEDING和FOLLOWING的表达式上是有符号的
--窗口范围为该分区的第一行和该分区的最后一行,与sum_salary_part等同,在非条件表达式中等同于rows
SUM(salary) OVER(PARTITION BY dept_id ORDER BY hire_date 
RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) sum_1,
--窗口范围为该分区的第一行和本行,与sum_salary_part_order等同,在非条件表达式中等同于rows
SUM(salary) OVER(PARTITION BY dept_id ORDER BY hire_date 
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) sum_2,
--窗口范围为该分区内小于本记录hire_da
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值