如何在sqlite3中一次查询多个子间隔上的最小/最大值?

如何在sqlite3中一次查询多个子间隔上的最小/最大值?,sqlite,Sqlite,我有一个带有时间戳列的sqlite3表和另一个带有特定值的列。 要获取我可以查询的值的总最小值/最大值,请执行以下操作: SELECT timestamp, max(value), min(value) from myTable; 结果是一行 但是是否有一种方法可以查询大小相同的子间隔的单个最小/最大值? 例如,我想考虑大小10的间隔(包括左,但不包括右边界): [0,10), [10,20), [20,30), ... 然后,期望的结果将是几行,如下所示: timestamp max(val

我有一个带有时间戳列的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
当然,很容易将整个查询拆分为几个查询,以逐行获得此结果,但是有没有办法在单个查询中获得所有结果?

我自己找到了一个解决方案: 要获取所有后续10秒间隔的最小/最大值,以下查询似乎可以实现这一目的:

SELECT (timestamp / 10) * 10 as intervalStartTime, min(value), max(value) FROM Test GROUP BY intervalStartTime;
这是假设时间戳是整数类型的,因此(timestamp/10)在再次相乘之前被截断