Sql 查询超出范围的时间级别所花费的金额

Sql 查询超出范围的时间级别所花费的金额,sql,time,limits,aggregates,Sql,Time,Limits,Aggregates,我有一个记录坦克时间和液位的表格 12:00 | 85 12:01 | 77 12:02 | 78 12:03 | 82 12:05 | 79 12:06 | 75 12:07 | 85 等等 您如何编写查询以获得油箱一天中低于80的时间量? 我正在使用sql server 2008为了做到这一点,您需要下一次。一些数据库具有lead()和lag()函数。我将使用一个相关子查询来实现这一点——这是一个更通用的方法 select sum(endTime - Time) from (select t

我有一个记录坦克时间和液位的表格

12:00 | 85

12:01 | 77

12:02 | 78

12:03 | 82

12:05 | 79

12:06 | 75

12:07 | 85

等等

您如何编写查询以获得油箱一天中低于80的时间量?
我正在使用sql server 2008

为了做到这一点,您需要下一次。一些数据库具有
lead()
lag()
函数。我将使用一个相关子查询来实现这一点——这是一个更通用的方法

select sum(endTime - Time)
from (select t.*,
             (select min(time) from t t2 where t2.time > t.time
             ) as endTime
      from t
     ) t
where level < 80;

第一列的类型是什么?需要更详细的信息才能得到真正正确的答案,但从外观上看,如果一行代表一分钟,并且您总是每分钟采样,作为一种快捷方式,您不能只计算级别<80的行数,因为1行=1分钟吗?
select sum(datediff(ms, Time, endTime))