我有一个带时间戳列的sqlite3表和另一个具有特定值的列。 要获取值的总体最小值/最大值,我可以查询:
SELECT timestamp, max(value), min(value) from myTable;
结果是一行。
但是有没有办法查询大小相等的子间隔的各个最小值/最大值? 例如,我要考虑大小为10的间隔(包括左边界,但不包括右边界): [0,10),[10,20),[20,30),... 所需的结果将是几行,如下所示:
timestamp max(value) min(value)
0 3 1
10 5 2
20 13 0
30 42 24
当然,很容易将整个查询分为几个查询以逐行获得此结果,但是有没有办法通过单个查询来全部获取呢? / p>
答案 0 :(得分:0)
我自己找到了一个解决方案: 为了获得所有随后的10s间隔的最小值/最大值,以下查询似乎可以解决问题:
SELECT (timestamp / 10) * 10 as intervalStartTime, min(value), max(value) FROM Test GROUP BY intervalStartTime;
这是假设时间戳为整数类型,因此(timestamp / 10)在再次相乘之前会被截断。