下午好!谁能帮我解决这个任务?我有一张桌子:
ID | 日期 | 原因 |
---|---|---|
1 | 2020-01-01 10:00 | 离开 |
1 | 2020-01-01 12:20 | 到达 |
1 | 2020-01-02 14:30 | 离开 |
1 | 2020-01-02 19:20 | 到达 |
1 | 2020-01-03 15:40 | 离开 |
1 | 2020-01-04 19:20 | 到达 |
2 | 2020-02-03 15:40 | 离开 |
2 | 2020-02-04 19:20 | 到达 |
3 | 2020-03-05 15:40 | 离开 |
3 | 2020-03-05 19:20 | 到达 |
3 | 2020-03-06 16:28 | 离开 |
3 | 2020-03-06 21:00 | 到达 |
我需要估计每个 ID 的平均持续时间。在第一步我想得到表,例如对于 id = 1,作为
ID | 持续时间(分钟) |
---|---|
1 | 140 |
1 | 290 |
1 | 1660 |
我怎样才能通过 T-Sql 查询来实现?
假设行完全交错,您可以使用lead()
:
select t.*,
datediff(minute, date, next_date) as diff_minutes
from (select t.*,
lead(date) over (partition by id order by date) as next_date
from t
) t
where reason = 'Departure';
如果您只想要一个结果id
,您可以在子查询或外部查询中进行过滤。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句