问题描述
id value
1 12
1 15
1 17
1 22
1 22
1 23
我需要这样
id value
1 --
1 3
1 2
1 5
1 0
1 1
你能告诉我如何实现吗?
解决方法
您可以尝试以下-
select id,value-max(value) over(order by id rows between 1 preceding and 1 preceding) as value
from tablename
,
您似乎想要lag()
,我猜想是id
并基于value
的顺序:
select t.*,(value - lag(value) over (partition by id order by value)) as diff
from t
order by value;
也就是说,您的样本数据完全相同。在SQL表中这是不寻常的。