abs*_*123 1 sql sql-server lag
LAG (RegisterReading,1) OVER (PARTITION BY Mpancore ORDER BY meterserialnumber, MeterRegisterId) as LagFunc
Run Code Online (Sandbox Code Playgroud)
有人请帮忙.谢谢
大家好,我已经更新了报告,所有添加到报表的钥匙,我已经用它对抗met_reg_read和mpan作为一个组合分区,但它似乎没有得到像前一个特定的一些557中lag func和lag test.
lagtest看起来像这样
LAG (d.RegisterReading,1,0) over (partition by Mpan, met_reg_read order by d.met_reg_read )
Run Code Online (Sandbox Code Playgroud)
lagfunc 没有默认值0
链接到新输出
这不是随机值.它是一个出现在具有相同Mpancore值的某个值的值.在这种情况下,它是最后一个值.
您遇到的问题是该order by子句有两个键,这些键具有重复值.因此,具有相同值的键的排序是任意的或不确定的(但不是随机的,这具有其他含义).
我不确定你想做什么,但我强烈建议使用一组独特的键(因此排序稳定).我认为你可以通过包括RegisterReading:
LAG(RegisterReading, 1) OVER (PARTITION BY Mpancore
ORDER BY meterserialnumber, MeterRegisterId, ReadingDateAndTime
) as LagFunc
Run Code Online (Sandbox Code Playgroud)
这仍然不完美,因为仍然存在NULL重复值.