我有一个 MySQL 表,其中一列用于存储时间,另一列用于存储与该时间相关的值。
time | value
------------
1 | 0.5
3 | 1.0
4 | 1.5
.... | .....
事件不是周期性的,即时间值不会按固定间隔递增。
由于有大量行(> 100000),为了在图表中显示值,我希望能够在整个时间长度内聚合(平均)固定大小间隔的值数据可用。所以基本上输出应该由成对的区间值和平均值组成。
目前,我将总时间间隔分成固定的时间 block ,针对该间隔执行单独的聚合查询,并在应用程序代码 (Java) 中收集结果。有没有办法在 SQL 中执行所有这些步骤。此外,我目前正在使用 MySQL,但对可能支持高效解决方案的其他数据库持开放态度。
最佳答案
SELECT FLOOR(time / x) AS Inter, AVG(value) AS Mean
FROM `table`
GROUP BY Inter;
x
是固定大小的区间。
关于mysql - 从单个 SQL 查询返回聚合结果行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7160041/