[英]Merge rows SQL Server 2014
假设我的表格中有3行,其中存储了以下数据。
ROW 1: 10:00 | 10:15 | Washington
ROW 2: 10:00 | 10:01 | New York
ROW 3: 10:02 | 10:03 | New York
ROW 4: 10:05 | 10:08 | New York
ROW 5: 10:20 | 10:40 | New York
“ |” 是列分隔符。
如何在表中找到此数据并将ROW 2和ROW 4合并在一起。 结果应该是这样的:
ROW 1: 10:00 | 10:08 | New York
我要忽略第一行和最后一行,因为合并的时间跨度被覆盖,并且我只希望“纽约”作为城市。
类似于:如果下一个<5分钟前THEN ROW 1.End_Time = ROW X.End_Time
先感谢您
看起来您想要给定位置的第一个(最早的开始时间)以及该位置的下一行的开始时间比第一个时间长5分钟或更长的下一行的结束时间。 一种方法:
SELECT TOP(1)
a.StartTime
, b.EndTime
, a.Location
FROM dbo.Table1 AS a
CROSS APPLY(
SELECT TOP(1) EndTime
FROM dbo.Table1 AS b
WHERE
b.Location = a.Location
AND b.StartTime >= DATEADD(minute, 5, a.StartTime)
) AS b
WHERE
a.Location = 'New York'
ORDER BY
a.StartTime;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.