SQLite 查询以固定时间间隔获取两个日期之间值的总和

SQLite query to get SUM of values between two dates on regular time intervals

提问人:DeFacto 提问时间:11/16/2023 更新时间:11/17/2023 访问量:45

问:

我正在尝试通过SQLite查询定期获取两个日期之间的值总和。

假设该表如下所示:

科尔1 科尔2 科尔3
22:04:02 22:04:12 8
22:04:12 22:04:22 22
22:04:22 22:04:32 10
22:04:32 22:04:42 9
22:04:42 22:04:52 92
22:04:52 22:05:02 14
22:05:02 22:05:12 88
22:05:12 22:05:22 24
22:05:22 22:05:32 30

我想到了类似的事情

SELECT SUM(Col3) AS duomenys FROM myTable WHERE Col1 >= '22:04:02' AND Col2 <= '22:05:02' GROUP BY Time(Col1, '+20 seconds')

但结果是这两次之间的所有数据 - 155。SUMCol3

我想要的结果是:

时间
22:04:22 30
22:04:42 19
22:05:02 106

小提琴

SQLite的

评论

0赞 Shawn 11/17/2023
为什么要在组中的 col20 时间上增加 1 秒?
0赞 DeFacto 11/17/2023
@Shawn 因为我想将整个范围分成几个部分(例如 20 秒),并得到这些部分中所有 vaues 的 Col3 之和。
0赞 Shawn 11/17/2023
分组依据 使用相同的表达式值(而不是范围)对行进行分组...

答:

0赞 MikeT 11/17/2023 #1

我相信:-

SELECT sum(col3) AS duomenys FROM mytable WHERE Col1 >= '22:04:02' AND Col2 <= '22:05:02' GROUP BY ((strftime('%s',col1) / 20))

将按照您的意愿行事:-

enter image description here

  • 这确实假设从 00 秒开始,每 20 秒进行一次分组。