我正在尝试通过ID获取两个连续行之间的差异,两个日期在不同的列中。我在想,PARTITION BY必须与MAX 2 desc相结合,然后再获取MAX 1 asc……尽管如此,但逻辑上有些混乱。这是一个示例。
之前
ID Start_date End_date
1 1/1/2017 2/8/2017
1 2/10/2017 3/8/2017
1 3/21/2017 3/29/2017
1 4/11/2017 5/12/2017
2 4/2/2016 4/3/2016
2 4/6/2016 5/11/2016
3 4/25/2016 4/30/2016
3 5/25/2016 6/29/2016
3 7/13/2016 7/15/2016
3 7/18/2016 8/24/2016
之后
ID Start_date End_date new
1 1/1/2017 2/8/2017 NULL
1 2/10/2017 3/8/2017 2
1 3/21/2017 3/29/2017 13
1 4/11/2017 5/12/2017 13
2 4/2/2016 4/3/2016 NULL
2 4/6/2016 5/11/2016 3
3 4/25/2016 4/30/2016 NULL
3 5/25/2016 6/29/2016 25
3 7/13/2016 7/15/2016 14
3 7/18/2016 8/24/2016 3
答案 0 :(得分:2)
使用the lag
function获取先前的值并在fetchLists(organizationId)
中使用它。
datediff
LAG提供对在当前行之前的给定物理偏移量的行的访问。在SELECT语句中使用此分析函数可将当前行中的值与上一行中的值进行比较。