--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