[MYSQL] - Группировка данных по интервалу времени
в условие джойна засунь проверку
WHERE counter.Date BETWEEN ...
Делая проверку по второй таблице ты подразумеваешь, что данные оттуда подтянулись, т.е. это все равно, что INNER JOIN. Надо либо добавить OR date is null, или как написал выше, а не явно указывать таблицу, хотя это не помешает
вообще можно к таблице из 24 строк результат исходного запроса прилефтджойнить, и нуллы как нули трактовать
насчет мускуля, конечно, не уверен - видел мягко говоря странное поведение, но это к делу не относится
select hour(Date count(*)
from T
group by hour(Date)
?
PS или нули для часов без записей тоже нужны?
интервалы разные походу
PS Вот, блин, тему развели на пустом месте
Оставить комментарий
SergeyVorobiev
Есть для примера таблица вида ID int,Date timestampЗадача состоит в том, чтобы вывести за какие нибудь сутки COUNT записей по часам... например
(время) (кол-во_записей)
01:00 3
02:00 0
03:00 5 и т.д.
Я создал таблицу-календарь, состоящую из 24 строк (ID int, hr time) и джоиню так
Но такая группировка делается по часам. Если же мне надо вывести за какие-либо сутки, то есть добавлю
WHERE Date BETWEEN....
то выводятся только те часы, за которые есть записи... а мне надо, чтобы все часы (24)выводились, а где нет записей просто ноль стоял справа...
Как решить эту проблему?