sqlite SQL在时间序列中获得最高更改率

ivqmmu1c  于 2023-01-13  发布在  SQLite
关注(0)|答案(1)|浏览(124)

我有一个包含时间戳和温度的表。我想得到每天温度的最大变化率。有没有公式或聚合函数可以做到这一点?
我可以通过一个程序获得最高的速率,该程序按顺序获得每一行,并确定两行之间的变化,但不知道是否有一个函数为此做好了准备。

ccrfmcuu

ccrfmcuu1#

SQL具有LAG函数,可用于从上一行获取值。
使用类似下面的SQL语句,我可以获得之前的温度和自上次阅读以来的时间:

SELECT datetime, temp,
   (LAG(temp, 1, 0) OVER (ORDER BY datetime) - Temp) PrevTemp,
   (julianday(datetime) - LAG(julianday(datetime), 1, 0) OVER (order by datetime))*24*60 TimeDIff
   FROM temperature 
  ORDER BY datetime

结果是这样的:

'2022-08-11 22:44:40', 33.000, -0.06300000000000239, 12.316666916012764
'2022-08-11 22:45:11', 32.937,  0.06300000000000239,  0.5166665464639664
'2022-08-11 22:47:15', 33.000, -0.06300000000000239,  2.066666856408119
'2022-08-11 22:48:16', 32.937,  0.06300000000000239,  1.016666516661644
'2022-08-11 22:49:18', 33.000, -0.06300000000000239,  1.0333330929279327

相关问题