У меня есть запрос на получение общего количества событий в день между двумя датами.Возвращение пустых строк в предложение GROUP BY
SELECT
DATE_FORMAT(startTime, '%Y%m%d') as day,
COUNT(0) as numEvents
FROM events
WHERE
(startTime BETWEEN 20140105000000 AND 20140112235900)
GROUP BY
day;
Это возвращает список как
day | numEvents
---------+----------
20140105 | 45
20140107 | 79
20140108 | 12
20140109 | 56
Обратите внимание, что есть недостающие дни в результате, так как нет никаких событий в таблице событий в те дни. Есть ли способ, чтобы вернуть значения 0 в те дни, в результате чего:
day | numEvents
---------+----------
20140105 | 45
20140106 | 0
20140107 | 79
20140108 | 12
20140109 | 56
20140110 | 0
20140111 | 0
20140112 | 0
Несколько решений здесь: http://stackoverflow.com/questions/6310839/sql-group-by-including-empty -rows – JSuar