sql 按组别和日差查询

sql queries by group and day difference

我想计算与 End 相比 Start/End 的天差。我知道我必须按 Id 对它们进行分组,但我不确定如何执行 Day 之间的差异。我使用 Python 获得了这方面的帮助,但我想查看 SQL 中的逻辑。

表 1

Id Day Status

111 1 Start

111 5 End

222 2 Begin

222 7 End

333 1 Start

333 3 Begin

333 7 End

理想的结果是:

Id Day Status Length

111 1 Start 4

111 5 End 

222 2 Begin 5

222 7 End

333 1 Start 6 (since we Start on Day 1 and End on day 7)

333 3 Begin 4 (since we Begin on Day 3 and End on day 7)

333 7 End

谢谢

例如。你可以这样做:

Select a.Id, a.Day, a.Status, b.day-a.day 从表 1 Left Join table1 b on a.id=b.id and a.status!='end' and b.status='end'