【问题标题】:How can I query for min/max values over several subintervals at once in sqlite3?如何在 sqlite3 中一次查询多个子区间的最小值/最大值?
【发布时间】:2018-06-25 22:52:05
【问题描述】:

我有一个 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

当然,很容易将整个查询分成几个查询逐行得到这个结果,但是有没有办法在一个单个查询中得到所有查询?

【问题讨论】:

    标签: sqlite


    【解决方案1】:

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

    SELECT (timestamp / 10) * 10 as intervalStartTime, min(value), max(value) FROM Test GROUP BY intervalStartTime;
    

    这是假设时间戳是整数类型,所以 (timestamp / 10) 在再次相乘之前会被截断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-21
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多