我一直在四处寻找,但却找不到其他同样的问题。
我正在使用SQL Server(2008 R2)。
假设我的查询中有以下三行数据。我需要做的是根据开始时间和结束时间(持续时间)之间的分钟差异将前两行分组为一个(在SQL Server或SSRS中)。在一行的结束时间和下一行的开始时间之间经过多长时间并不重要;我只关注持续时间。
当前结果集:
+---------+------------+------------+----------+
| Vehicle | Start Time | End Time | Duration |
+---------+------------+------------+----------+
| 12 | 1:56:30 AM | 2:07:47 AM | 11 |
+---------+------------+------------+----------+
| 12 | 2:07:57 AM | 6:46:08 AM | 279 |
+---------+------------+------------+----------+
| 19 | 2:55:02 PM | 3:45:59 PM | 53 |
+---------+------------+------------+----------+
期望的结果集:
+---------+------------+------------+----------+
| Vehicle | Start Time | End Time | Duration |
+---------+------------+------------+----------+
| 12 | 1:56:30 AM | 6:46:08 AM | 290 |
+---------+------------+------------+----------+
| 19 | 2:55:02 PM | 3:45:59 PM | 53 |
+---------+------------+------------+----------+
我觉得这必须是分组的问题,但我不确定如何根据开始和结束时间是否相隔不到15分钟进行分组。
如何实现这一目标?
答案 0 :(得分:1)
除非我误解了你的问题,否则试试这个
Select Vehicle
,StartTime = min(StartTime)
.EndTime = max(EndTime)
,Duration = sum(Duration)
From YourTable
Group By Vehicle