Моя таблица rating
имеет следующую структуру:
RATING (INT 'id', INT 'stars') primary key 'id';
Уже известно, что stars
может иметь значение только от 1 до 5.
Ниже приведено возможное содержание моей таблицы:
Пример таблицы 1:
ID Stars
-- -----
1 5
2 4
3 4
4 4
5 5
6 4
7 4
Пример таблицы 2:
ID Stars
-- -----
1 1
2 2
3 3
4 2
5 1
6 1
7 1
8 2
9 1
Я запрашиваю свою таблицу следующим запросом:
SELECT stars, count(stars) as count
FROM rating
GROUP BY stars
ORDER BY stars desc;
Пример таблицы 1 Вывод:
stars count
----- -----
5 2
4 5
Пример выходной таблицы 2:
stars count
----- -----
3 1
2 3
1 5
Моя проблема:
Я хочу такой запрос, где вывод отображается ZERO для значения, которого нет в таблице, т. Е.
Для образца таблицы1 я хочу вывод как:
stars count
----- -----
5 2
4 5
3 0
2 0
1 0
Для образца таблицы 2 я хочу вывод как:
stars count
----- -----
5 0
4 0
3 1
2 3
1 5
Обратите внимание, что известно, что stars
может иметь значения только от 1 до 5.
Я пытаюсь запрос (не работает правильно):
SELECT stars, count(stars) as count
FROM rating
WHERE stars in (1,2,3,4,5)
GROUP BY stars
ORDER BY stars desc;
Проблема с предложением where?