Задать вопрос
@mistergalynsky

Как выбрать данные за каждый час из базы SQL?

Всем доброго времени суток. У меня есть таблица с полями - (id, temp, hum, date). В неё каждые 5 минут добавляется запись. Помогите написать запрос который бы вывел temp, hum и date за каждый час за текущий день. То есть должно быть 24 записи. Прикладываю изображение таблицы для наглядности. Заранее благодарен.6fcd09d2f1064f63ac5cdbce72d60121.PNG
  • Вопрос задан
  • 7701 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@WhoMe
Как-то так
...
WHERE 
 DATE(date) = CURDATE()
GROUP BY
  EXTRACT(HOUR FROM date)
ORDER BY
 EXTRACT(HOUR FROM date)

Но 24 записи будут не ранее 12 часа ночи.
Нужно уточнить. Что значить "выбрать temp, hum и date"? Их сумму, максимальное/минимально или что? В часе их около 12 штук, а записей всего предполагается ведь не более 24.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@maxyc_webber
Web-программист
where date between 00000000 and 0000000
Ответ написан
Комментировать
Sergei_Erjemin
@Sergei_Erjemin
Улыбайся, будь самураем...
Если данные не за одни сутки и нужно получить данные за весь период, то как-то так:
SELECT
  DATE(table.dattim) AS DD,
  HOUR(table.dattim) AS HH,
  AVG(table.value) AS AVG_VALUE
FROM table
GROUP BY DD, HH
ORDER BY DD, HH
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы