[MYSQL] - Группировка данных по интервалу времени
в условие джойна засунь проверку
WHERE counter.Date BETWEEN ...
Не, такой вариант, конечно же, тоже будет работать... также как у автора, ибо ничем не отличается.
Делая проверку по второй таблице ты подразумеваешь, что данные оттуда подтянулись, т.е. это все равно, что INNER JOIN. Надо либо добавить OR date is null, или как написал выше, а не явно указывать таблицу, хотя это не помешает
Делая проверку по второй таблице ты подразумеваешь, что данные оттуда подтянулись, т.е. это все равно, что INNER JOIN. Надо либо добавить OR date is null, или как написал выше, а не явно указывать таблицу, хотя это не помешает
ну да, а если is null написать, то тогда они будут в каунте считаться
вообще можно к таблице из 24 строк результат исходного запроса прилефтджойнить, и нуллы как нули трактовать
вообще можно к таблице из 24 строк результат исходного запроса прилефтджойнить, и нуллы как нули трактовать
иногда лучше жевать, чем говорить.
насчет мускуля, конечно, не уверен - видел мягко говоря странное поведение, но это к делу не относится
насчет мускуля, конечно, не уверен - видел мягко говоря странное поведение, но это к делу не относится
чем не устраивает
select hour(Date count(*)
from T
group by hour(Date)
?
PS или нули для часов без записей тоже нужны?
select hour(Date count(*)
from T
group by hour(Date)
?
PS или нули для часов без записей тоже нужны?
интервалы разные походу
Просто из любопытства - за что минус? Если из личной неприязни, в отместку или еще за что-то такое, то неважно. Но мало ли, может так делать нельзя (кто знает, может в MySQL это приводит к остановке сервера или это сжирает все ресурсы) - в этом случае, интересно.
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)выводились, а где нет записей просто ноль стоял справа...
Как решить эту проблему?