我有一个功率曲线的 xy 图。 y 轴上的功率和 x 轴上的风。
我从 MySQL 表中获取值。
如何在 wind 列中获得 1 间隔之间的平均功率。
例子:
Wind | Power
10.2 1245
10.2 1245
9.7 1145
8.7 1001
11.1 1345
9.3 1100
10.6 1284
8 987
5.5 352
...
我需要的是:
Wind | Avg(Power)
0-1 ...
1-2 ...
2-3 ...
...
提前致谢
编辑:
谢谢大家的回答!
对于我的特殊情况,风速始终在 0 到 25 m/s 之间。 我需要从中获取平均功率的间隔是 0.5。
所以:
0 - 0,25
0,25 - 0,75
0,75 - 1,25
1,25 - 1,75
... - 25
最佳答案
这可以是一个聚合查询,您可以在其中使用单射函数对您的个人观察结果进行分类。单射函数是 FLOOR(Wind)
。
这是查询 ( http://sqlfiddle.com/#!2/9e64b6/9/0 ),包括范围的显示内容。
SELECT CONCAT(FLOOR(Wind),'-',FLOOR(Wind)+1) AS Wind,
AVG(Power) AS Power
FROM power
GROUP BY FLOOR(Wind)
ORDER BY FLOOR(Wind)
当然,这使用了 MySQL AVG()
函数,生成算术平均值。我认为您正在处理的应用程序类型更喜欢几何平均值,但我不确定。
它还会产生一个稀疏的结果集。
关于MySQL获取按间隔分组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22102016/