У меня есть база данных MySQL с именем WindData который выглядит следующим образом:Показать средние значения для большого количества данных
- метка времени
- температура
- скорость ветра
- направлением ветра
добавить новый ряд каждые 2-3 минуты, поэтому в течение года будет много строк.
Теперь я хочу представить данные в виде графика за определенный промежуток времени (4 дня назад, в прошлом месяце, последние 6 месяцев, 2011-2012 ...). Скажите, что я хочу показать, как температура изменилась в течение прошлого года, используя Google Charts, чтобы отобразить это. Затем диаграмма Google имеет максимальный предел количества точек данных, которые вы можете использовать.
Я бы тогда как SQL запрос, где я указать TimeRange (2012-01-01 - 2013-10-10), что дает мне
- фиксированное число строк (например, 200)
- Каждая строка содержит среднее и максимальное значение за этот интервал.
ASCII-арт пример:
...............1..............2...............+..............199..............200
Где .
одна строка в моей таблице, а цифры представляют собой средние и MAXVALUE из предыдущих точек.
Некоторые psudocode, которые могли бы показать, что я пытаюсь сделать это:
SELECT AVG(temperature)
FROM WindData
WHERE timestamp > 2012-01-01 AND timestamp < 2013-10-10
Это просто дать мне один результат, где я получаю среднее значение всего TimeRange. Так что, возможно, есть способ создать еще один оператор 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, в котором отображаются данные о погоде от домашней метеостанции.
Можете ли вы рассказать нам, что у вас есть? Расскажите, какие конкретные проблемы вы испытываете. – Jeroen
В настоящее время я использую не очень хорошее решение, что я извлекаю все строки из своего кода C#, и я сам вычисляю все средние значения. :-) Но, очевидно, это не очень хорошо, так как я каждый раз загружаю ALOT из данных SQL. Я также попытался запустить 200 запросов sql с разным диапазоном времени, где я запрашиваю значение AVG, которое я хочу. Но это тоже не похоже на хорошую практику, но, может быть, это лучший способ? – ThomasH
обновленное описание, чтобы лучше объяснить, чего я хочу достичь. – ThomasH