Получить строки, сгруппированные по часам с MySQL - PullRequest
12 голосов
/ 22 сентября 2009

У меня есть таблица, содержащая журналы доступа. Я хочу знать, сколько обращений к resource_id '123' происходило за каждый час в течение 24 часов.

Моя первая мысль для извлечения этой информации - просто циклически проходить каждый час и запрашивать у таблицы в каждом цикле что-то вроде ... and time like '$hour:%', учитывая, что поле time содержит данные в формате 15:47:55.

Есть ли способ, которым я могу group by часов и извлекать каждый час и количество строк в каждом часе в одном запросе?

База данных MySQL, язык PHP.

Ответы [ 2 ]

37 голосов
/ 22 сентября 2009
SELECT HOUR(MyDatetimeColumn) AS h, COUNT(*)
FROM MyTable
GROUP BY h;
3 голосов
/ 22 сентября 2009

Вы можете использовать функцию ЧАС , чтобы получить время вне времени. Тогда вы сможете группировать по этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...