У меня есть таблица заданий, и я пытаюсь получить количество заданий для разных временных периодов.Мой текущий запрос выглядит так:
SELECT COUNT(*) AS 'count',
WEEK(j.created_at) AS 'week',
MONTH(j.created_at) AS 'month',
YEAR(j.created_at) AS 'year',
DATE_FORMAT(j.created_at, '%y') AS 'short_year'
FROM jobs j WHERE j.state <> 'draft'
AND created_at > '2010-06-21'
AND created_at < '2010-08-01'
GROUP BY WEEK(j.created_at)
ORDER BY WEEK(j.created_at)
Чтобы изменить мой таймфрейм, я просто изменяю GROUP BY
с WEEK
на MONTH
, и я получаю счет по месяцам, а не по неделям.
Проблема в том, что я не получаю пустые строки неделями с 0 заданиями.Мой результат из вышеприведенного запроса:
count week month year short_year
3 25 6 2010 10
2 26 6 2010 10
2 27 7 2010 10
1 28 7 2010 10
3 30 7 2010 10
Вы заметите, что нет данных за 29-ю неделю, которая должна быть строкой с количеством (0).Есть ли способ получить эту строку отсчета 0, сохраняя при этом гибкость в изменении моей группировки между WEEK
и MONTH
?