У меня есть куча данных даты в таблице mysql следующим образом:
2010-02-13 1:00:00, "soma data" 2010-02-13 1:25:00, "soma data" 2010-02-13 1:37:00, "soma data" 2010-02-13 2:12:00, "soma data"
Я хочу выбрать отчет, который показывает данные, сгруппированные по часам, например:
On Feb 13, during the hour from 1:00 pm to 1:59 pm, there were 3 data points. On Feb 13, during the hour from 2:00 pm to 2:59 pm, there was 1 data points. ...
В основном я хочу сообщить о совокупном количестве записей, которые произошли в течение каждого часа дня. Таким образом, конечный результат даст мне отчет о 10 днях, разразившийся с 24-часовым шагом, поэтому я могу видеть, сколько данных есть в течение любого заданного часа в любой день.
TIA, Надеюсь, вы можете помочь!
Вы можете использовать предложение GROUP BY
, как в следующем запросе:
SELECT COUNT(*), YEAR(dateTimeField), MONTH(dateTimeField), DAY(dateTimeField), HOUR(dateTimeField) FROM yourTable WHERE dateTimeField >= '2010-02-04 00:00:00' AND dateTimeField < '2010-02-14 00:00:00' GROUP BY YEAR(dateTimeField), MONTH(dateTimeField), DAY(dateTimeField), HOUR(dateTimeField);
Вы также можете проверить документацию MySQL для дальнейшей справки о функциях даты и времени:
SELECT HOUR(datetime), COUNT(*) FROM table GROUP BY HOUR(datetime);
В течение этого часа вы получите два поля: час и количество событий.