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函数,您可以在分析函数中轻松地比较当前行与前一行或多行的数据,从而更好地理解数据之间的关系。