Oracle的LAG函數是一種分析函數,它可以用于在查詢結果集中獲取前一行或多行的數據
以下是一個使用LAG函數的示例:
SELECT empno, ename, sal,
LAG(sal, 1) OVER (ORDER BY sal) AS prev_sal,
LAG(sal, 2) OVER (ORDER BY sal) AS prev_prev_sal
FROM emp;
在這個示例中,我們從emp表中選擇員工編號(empno)、員工姓名(ename)和薪水(sal)。然后,我們使用LAG函數獲取前一行和前兩行的薪水。OVER子句定義了窗口,按照薪水(sal)對結果集進行排序。
LAG函數的語法如下:
LAG(expr, offset, default_value) OVER (
[PARTITION BY partition_expression]
ORDER BY order_expression
)
通過使用LAG函數,您可以在分析函數中輕松地比較當前行與前一行或多行的數據,從而更好地理解數據之間的關系。