如何在多个列上使用oracle的lag函数

   2024-09-30 5900
核心提示:在Oracle中,LAG()函数允许您在一个结果集的行中访问前一行的数据SELECT emp_id, dept_id, salary, LAG(salary) OVER (PARTI

在Oracle中,LAG()函数允许您在一个结果集的行中访问前一行的数据

SELECT     emp_id,     dept_id,     salary,     LAG(salary) OVER (PARTITION BY dept_id ORDER BY emp_id) as prev_dept_salary,    LAG(salary) OVER (ORDER BY emp_id) as prev_global_salaryFROM employees;

这个查询将显示每个员工的ID、部门ID、工资以及他们所在部门和全局的前一个员工的工资。

在这个例子中,我们使用了两个LAG()函数,但是它们有不同的窗口:

LAG(salary) OVER (PARTITION BY dept_id ORDER BY emp_id):此函数计算相同部门内前一个员工的工资。LAG(salary) OVER (ORDER BY emp_id):此函数计算按员工ID排序的全局前一个员工的工资。

您可以根据需要调整PARTITION BY和ORDER BY子句来适应您的需求。

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

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