Я пытался исправить мой запрос в течение нескольких дней в настоящее время :( Предполагается, группировать по месяцам и возвращает 0, если запись не найдена Пример:.Группа по месяцам и возвращает 0, если данные не найдены
SELECT MONTH(created_at) AS month_num,
DATE_FORMAT(created_at, '%b') AS month_name, COUNT(*) AS total_num
FROM table WHERE user_id=1384249399168
GROUP BY MONTH(created_at) ORDER BY created_at DESC
Результат:
month_num month_name total_num
8 Aug 20
7 Jul 15
5 May 39
2 Feb 10
1 Jan 8
Espected Результат:
month_num month_name total_num
12 Dec 0
11 Nov 0
10 Oct 0
9 Sep 0
8 Aug 20
7 Jul 15
6 Jun 0
5 May 39
4 Apr 0
3 Mar 0
2 Feb 10
1 Jan 8
I ч ave попробовал много ответов, особенно это MySql count() to return 0 if no records found, но безуспешно.
Любая помощь пожалуйста?
Вы также можете использовать UNION - или даже таблицу полезности целых чисел (0-9) - или (еще лучшая идея) обрабатывают логику недостающих месяцев на уровне приложения (например, с небольшим количеством php) – Strawberry