【发布时间】:2018-02-03 13:01:18
【问题描述】:
是否可以按顺序使用带有 2 列的滞后?如果不是,我该怎么做?
这是我现在拥有的:
LAG(GOOD_QTY) Over (Order By SEQUENCE_NO) As Value
这是我想要的:
LAG(GOOD_QTY) Over (Order By SUB_ID DESC,SEQUENCE_NO) As Value
我需要延迟来确定 Sub_ID 的优先级,因为需要先检查所有子 ID 操作。
这是我的意思/想要的可视化。
这里是初始值/表:
SEQ_NO SUB_ID value
-------------
10 0 50
30 0 200
20 0 75
25 0 100
10 1 150
20 1 250
这是在发生 2 order by 的滞后函数后我想要的
SEQ_NO SUB_ID value
-------------
10 0 250
30 0 100
20 0 50
25 0 75
10 1 NULL
20 1 150
所以基本上我想对所有具有sub_id = 1 的值分别执行滞后函数,并在所有具有sub_id = 0 的值之前执行。一旦它完成了所有sub_id = 1 值,它应该继续转到sub_id = 0 值,将sub_id = 1 的最后一个值传递给sub_id = 0 的第一个seq_no
只要先弄清楚如何处理所有sub_id = 1 值,然后再处理sub_id = 0 值就足够了,我可能会弄清楚其余的。
【问题讨论】:
-
你试过了吗?发生了什么?
-
等等……它成功了。哈哈
标签: sql sql-server lag