我有一个名为 WindData 的 MySQL 数据库,如下所示:
- 时间戳
- 温度
- 风速
- 风向
我每 2-3 分钟添加一个新行,所以一年多的时间会有很多行。
现在我想在某个时间范围内将数据显示为图表,(4 天前,上个月,最后 6 个月,2011-2012 ......)。假设我想显示过去一年的温度变化情况,使用 Google Charts 来显示。然后谷歌图表对您可以使用的数据点数量有一个最大限制。
然后我想要一个 SQL 查询,在其中指定给我的时间范围 (2012-01-01 -- 2013-10-10)
- 固定行数(例如 200)
- 每行都包含该间隔内的平均值和最大值。
一个 ascii 艺术示例:
...............1..............2...............+..............199..............200
.
我的表中的一行在哪里,数字代表前一个点的平均值和最大值。
一些可能显示我想要完成的伪代码是:
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-01-01 AND timestamp < 2013-10-10
这只会给我一个结果,我得到整个时间范围的平均值。因此,也许有一种方法可以再创建一条 SQL 语句,以不同的时间范围运行上述 sql 语句 200 次。
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-01-01 AND timestamp < 2013-02-1
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-02-01 AND timestamp < 2013-03-1
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-03-01 AND timestamp < 2013-04-1
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-04-01 AND timestamp < 2013-05-1
...等等。
如果有人有兴趣,我将使用此处的帮助在 www.surfvind.se 上展示更好的图表,该图表显示来自自制气象站的天气数据。