溫馨提示×

如何在分組內使用oracle的lag函數

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

在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_salary
FROM employees t1;

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

解釋一下這個查詢:

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

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

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女