Как-то так
...
WHERE
DATE(date) = CURDATE()
GROUP BY
EXTRACT(HOUR FROM date)
ORDER BY
EXTRACT(HOUR FROM date)
Но 24 записи будут не ранее 12 часа ночи.
Нужно уточнить. Что значить "выбрать temp, hum и date"? Их сумму, максимальное/минимально или что? В часе их около 12 штук, а записей всего предполагается ведь не более 24.