У меня есть DateTime под названием activity_dt и данные выглядит следующим образом:DateTime группа по дате и времени
2/5/2013 9:24:00 AM
2/7/2013 7:17:00 AM
Как я группа по дате и времени?
У меня есть DateTime под названием activity_dt и данные выглядит следующим образом:DateTime группа по дате и времени
2/5/2013 9:24:00 AM
2/7/2013 7:17:00 AM
Как я группа по дате и времени?
SQL Server:
SELECT [activity_dt], count(*)
FROM table1
GROUP BY DATEPART(day, [activity_dt]), DATEPART(hour, [activity_dt]);
Oracle:
SELECT [activity_dt], count(*)
FROM table1
GROUP BY TO_CHAR(activity_dt, 'DD'), TO_CHAR(activity_dt, 'hh');
MySQL:
SELECT [activity_dt], count(*)
FROM table1
GROUP BY hour(activity_dt) , day(activity_dt)
SELECT [activity_dt], COUNT(*) as [Count]
FROM
(SELECT dateadd(hh, datediff(hh, '20010101', [activity_dt]), '20010101') as [activity_dt]
FROM table) abc
GROUP BY [activity_dt]
Использование MySQL Я обычно делаю это таким образом:
SELECT count(id), ...
FROM quote_data
GROUP BY date_format(your_date_column, '%Y%m%d%H')
order by your_date_column desc;
Или в той же идее, если нужно вывести дату/час:
SELECT count(id) , date_format(your_date_column, '%Y-%m-%d %H') as my_date
FROM your_table
GROUP BY my_date
order by your_date_column desc;
Если указать индекс на вашей даты столбца, MySQL должен быть в состоянии использовать его, чтобы ускорить вещи немного.
Мне пришлось заменить% h% H, сортировка с 0-24 работает лучше для меня, а не 0-12 и 0-12. – Melvin
@Melvin Вы правы, я исправил свой ответ. – Simon
Просто примечание относительно использования индекса. В то время как date_format позволяет использовать индексы, индексы будут использоваться только оптимально (сканирование с ослабленным индексом), когда используются конкретные/ограниченные агрегированные функции. Как правило, только MIN() и MAX(), применяемые к одному столбцу, допускают сканирование индексов, а также другие агрегаты, если они определяют ключевое слово DISTINCT. Источник: [ссылка] (http://dev.mysql.com/doc/refman/5.7/en/group-by-optimization.html) – JavoSN
Какие rdbms вы использовали? –