我有像这张桌子的数据
ItemId Value Date
1 2 2017-12-18 17:00:00.000
1 2 2017-12-18 17:02:00.000
1 2 2017-12-18 17:04:00.000
1 3 2017-12-18 17:06:00.000
1 3 2017-12-18 17:08:00.000
1 2 2017-12-18 17:10:00.000
1 2 2017-12-18 17:12:00.000
1 2 2017-12-18 17:16:00.000
1 4 2017-12-18 17:14:00.000
我想在sql server中输出这样的
ItemId Value MaxDate
1 2 2017-12-18 17:04:00.000
1 3 2017-12-18 17:08:00.000
1 2 2017-12-18 17:16:00.000
1 4 2017-12-18 17:14:00.000
谢谢你的回答。
你似乎想要在value
改变之前的最后一行,虽然我不确定值“4”来自哪里(我最好的猜测是最后一个输入行应该有一个“4”和一个不同的时间戳)。
如果是这样,你可以简单地使用lead()
:
select t.*
from (select t.*,
lead(value) over (partition by itemId order by date) as next_value
from t
) t
where next_value is null or next_value <> value;