如何在分组内使用oracle的lag函数

   2024-09-30 5910
核心提示:在Oracle中,LAG函数用于获取分组内的前一行数据SELECT t1.department_id, t1.employee_id, t1.salary, LAG(t1.salary) OVER

在Oracle中,LAG函数用于获取分组内的前一行数据

SELECT t1.department_id,       t1.employee_id,       t1.salary,       LAG(t1.salary) OVER (PARTITION BY t1.department_id ORDER BY t1.salary) as previous_salaryFROM employees t1;

这个查询会返回每个员工所在部门的ID、员工ID、工资以及同一部门中工资略低于该员工的前一名员工的工资。

解释一下这个查询:

PARTITION BY t1.department_id:将结果集按照部门ID进行分区。ORDER BY t1.salary:在每个分区内,根据工资对行进行排序。LAG(t1.salary) OVER (...):在每个分区内,获取当前行的前一行的工资值。

注意:在第一行数据中,没有前一行数据,因此LAG函数将返回NULL。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号