Sql 每个唯一行的Oracle LAG函数
我有以下疑问:Sql 每个唯一行的Oracle LAG函数,sql,oracle,Sql,Oracle,我有以下疑问: SELECT EEEV_EMPL_ID, EEEV_DT, EEEV_CCTR_ID, LAG(EEEV_CCTR_ID, 1, ' ') OVER(ORDER BY EEEV_EMPL_ID DESC, EEEV_END_DT ASC) AS prev FROM CDAS.VDWHEEEV1 eeev1 ORDER BY EEEV_EMPL_ID 因此,对于每个EEEV_
SELECT
EEEV_EMPL_ID,
EEEV_DT,
EEEV_CCTR_ID,
LAG(EEEV_CCTR_ID, 1, ' ') OVER(ORDER BY EEEV_EMPL_ID DESC, EEEV_END_DT ASC) AS prev
FROM
CDAS.VDWHEEEV1 eeev1
ORDER BY
EEEV_EMPL_ID
因此,对于每个EEEV_emp_ID,该表可以有多行。我想为每组唯一emp_ID设置延迟。我不想在一个员工和另一个员工之间落后。因此,如果它是组的最后一行,则滞后值应为Null或其他值。现在它只是落后于下一行,即使它是一个不同的雇员id。我如何做到这一点。我希望这是有道理的 如果我理解正确,您希望按
分区:
LAG(EEEV_CCTR_ID, 1, ' ') OVER (PARTITION BY EEEV_EMPL_ID ORDER BY EEEV_END_DT ASC) AS prev
如果我理解正确,您希望按
分区:
LAG(EEEV_CCTR_ID, 1, ' ') OVER (PARTITION BY EEEV_EMPL_ID ORDER BY EEEV_END_DT ASC) AS prev
编辑您的问题并提供示例数据和所需结果。编辑您的问题并提供示例数据和所需结果。是的,这是有效的,是分区完成了该技巧,非常感谢。是的,这是有效的,是分区完成了该技巧,非常感谢。