繁体   English   中英

合并行SQL Server 2014

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM