【发布时间】:2016-10-01 18:24:51
【问题描述】:
我遇到了以下问题。
给定一个基本上由两列组成的表,一个时间戳和一个值,我需要通过对值和时间戳取平均值,将时间戳之间的 n 行减少到 m 个数据行。
假设我想要 15 到 85 之间的所有数据,最多包含 3 个数据行。
time | value
10 | 7
20 | 6
30 | 2
40 | 9
50 | 4
60 | 3
70 | 2
80 | 9
90 | 2
Remove unneeded rows and split them into 3 parts
20 | 6
30 | 2
40 | 9
50 | 4
60 | 3
70 | 2
80 | 9
Average them
25 | 4
50 | 8
75 | 5.5
我知道如何通过包含 WHERE 来删除不需要的行,如何平均给定的一组行,但想不出如何将所需的数据集分成 m 个部分。
感谢任何帮助和想法!
我使用 SQLite,这并没有让这变得更容易,而且很遗憾不能切换到任何其他方言。
我尝试根据行数和行数对行进行分组,但没有成功。我想到的唯一其他解决方案是获取受影响的行数和具有限制和偏移量的 UNION m SELECT。
【问题讨论】: