Sql 查询超出范围的时间级别所花费的金额
我有一个记录坦克时间和液位的表格 12:00 | 85 12:01 | 77 12:02 | 78 12:03 | 82 12:05 | 79 12:06 | 75 12:07 | 85 等等 您如何编写查询以获得油箱一天中低于80的时间量?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
我正在使用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))