计算两行之间的持续时间 T-Sql

伊万

下午好!谁能帮我解决这个任务?我有一张桌子:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

计算午夜后两次之间的持续时间

SQL计算仅包含2个特定值的两行之间的时间差

SQL Server 2012:使用动态SQL获取出现次数并计算持续时间

SQL Server:计算重叠时间跨度的总持续时间

Access SQL:计算两行之间的百分比变化

通过比较SQL Server中的两行来计算列之间的平均值

计算两个时段之间的预订持续时间

T-SQL n行,两天之间的天数

T-SQL将结果分为两行

如何计算两个日期之间的持续时间

SQL Server:根据两行之间的优先级从两行返回行

根据结束日期和持续时间查找开始日期-T-SQL

在T-SQL中将两行返回的行合并为一行

sql查询,用于计算每个票证的日期时间差作为每个票证的持续时间

在SQL中计算两个日期之间的持续时间

SQL查询以计算不同事件之间的平均持续时间

T-SQL合并并将两行合并为一个

SQL 帮助!如何创建一个新列来显示两个不同时期之间的持续时间

如何使用 Microsoft SQL 计算持续时间?

SQL 计算查询开始时间和持续时间以查找结束时间

SQL Server 总持续时间值

根据日期和持续时间数据计算时间列 - SQL Server ASP Classic

SQL Server / 如何从两个日期时间对持续时间进行排序?

计算持续时间 SQL 的总和

如何计算SQL中两个日期之间的年,月,日的持续时间/年龄?instituitiondate 和 nextdate 具有“日期”数据类型?

使用 SQL GROUP BY 计算持续时间时如何跳过间隙

根据 SQL 中另一列中特定 ID 的条件计算持续时间

在 Redshift 中计算总持续时间的 SQL

如何使用 mysql/sql 删除多个事件之间的重叠持续时间?