次のような WindData という名前の MySQL データベースがあります。
- タイムスタンプ
- 温度
- 風速
- 風向き
2 ~ 3 分ごとに新しい行を追加するので、1 年で多くの行ができます。
ここで、特定の期間 (4 日前、先月、過去 6 か月、2011-2012...) 内のデータをグラフとして表示したいと考えています。Google チャートを使用して、過去 1 年間の気温の変化を表示したいとします。次に、Google チャートには、使用できるデータポイントの量に上限があります。
次に、時間範囲 (2012-01-01 -- 2013-10-10) を指定する SQL クエリが必要です。
- 一定数の行 (たとえば 200)
- すべての行には、その間隔の平均値と最大値が含まれています。
アスキー アートの例:
...............1..............2...............+..............199..............200
テーブルの 1 つの行はどこ.
にあり、数字は前のドットの平均値と最大値を表します。
私が達成しようとしていることを示すかもしれないいくつかの疑似コードは次のとおりです。
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-01-01 AND timestamp < 2013-10-10
これにより、時間範囲全体の平均値を取得する 1 つの結果が得られます。したがって、上記の SQL ステートメントを異なる時間範囲で 200 回実行する SQL ステートメントをもう 1 つ作成する方法があるかもしれません。
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 でより良い図を提示します。