Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连续列基于sql server中的另一列求和_Sql_Sql Server - Fatal编程技术网

连续列基于sql server中的另一列求和

连续列基于sql server中的另一列求和,sql,sql-server,Sql,Sql Server,我有如下数据 AppName 开始 完成 总时间 微软Word 2021-02-28 7:30:25 2021-02-28 7:31:25 1. 微软Word 2021-02-28 7:31:26 2021-02-28 7:33:25 2. 微软Word 2021-02-28 7:33:27 2021-02-28 7:35:25 2. 微软Word 2021-02-28 7:35:28 2021-02-28 7:37:25 2. 谷歌浏览器 2021-02-28 7:37:29 2021-02-

我有如下数据

AppName 开始 完成 总时间 微软Word 2021-02-28 7:30:25 2021-02-28 7:31:25 1. 微软Word 2021-02-28 7:31:26 2021-02-28 7:33:25 2. 微软Word 2021-02-28 7:33:27 2021-02-28 7:35:25 2. 微软Word 2021-02-28 7:35:28 2021-02-28 7:37:25 2. 谷歌浏览器 2021-02-28 7:37:29 2021-02-28 7:39:25 2. 资源管理器 2021-02-28 7:39:30 2021-02-28 7:41:25 2. 资源管理器 2021-02-28 7:41:31 2021-02-28 7:43:25 2. 微软Word 2021-02-28 7:43:32 2021-02-28 7:45:25 2. 微软Word 2021-02-28 7:45:33 2021-02-28 7:47:25 2. 谷歌浏览器 2021-02-28 7:47:34 2021-02-28 7:49:25 2. 谷歌浏览器 2021-02-28 7:49:35 2021-02-28 7:51:25 2. 谷歌浏览器 2021-02-28 7:51:36 2021-02-28 7:53:25 2. 微软Excel 2021-02-28 7:53:37 2021-02-28 7:55:25 2.
这是一种缺口和孤岛问题。您不关心表中的时间间隔,因此可以使用行号的差异:

select appname, min(start), max(finish), sum(time)
from (select t.*,
             row_number() over (order by start) as seqnum,
             row_number() over (partition by appname order by start) as seqnum_a
      from t
     ) t
group by appname, (seqnum - seqnum_a)