溫馨提示×

如何在分組內(nèi)使用oracle的lag函數(shù)

小樊
81
2024-09-15 19:35:55
欄目: 云計算

在Oracle中,LAG函數(shù)用于獲取分組內(nèi)的前一行數(shù)據(jù)

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

這個查詢會返回每個員工所在部門的ID、員工ID、工資以及同一部門中工資略低于該員工的前一名員工的工資。

解釋一下這個查詢:

  • PARTITION BY t1.department_id:將結(jié)果集按照部門ID進行分區(qū)。
  • ORDER BY t1.salary:在每個分區(qū)內(nèi),根據(jù)工資對行進行排序。
  • LAG(t1.salary) OVER (...):在每個分區(qū)內(nèi),獲取當前行的前一行的工資值。

注意:在第一行數(shù)據(jù)中,沒有前一行數(shù)據(jù),因此LAG函數(shù)將返回NULL。

0