Если бы у вас была таблица для присваиваемых рейтингов, то она была бы довольно простой (и гибкой)
, например, рассмотрите: -
Ваша существующая таблица.
DROP TABLE IF EXISTS mytable;
CREATE TABLE IF NOT EXISTS mytable (employee TEXT, rating text);
INSERT INTO mytable VALUES (1,'B'),(2,'B'),(3,'C'),(4,null),(5,null),(6,null);
Таблица рейтингов.
DROP TABLE IF EXISTS rating;
CREATE TABLE IF NOT EXISTS rating (rating);
INSERT INTO rating VALUES('A'),('B'),('C'),('D'),('E');
Затем: -
SELECT rating.rating, (SELECT count(*) FROM mytable WHERE rating.rating = mytable.rating) FROM rating;
Результат: -
![enter image description here](https://i.stack.imgur.com/hEMli.png)
Гибкость
Добавьте несколько новых оценок, например, согласно: -
INSERT INTO rating VALUES('X'),('Y'),('Z');
И затем выполните: -
SELECT rating.rating, (SELECT count(*) FROM mytable WHERE rating.rating = mytable.rating) FROM rating;
, в результате: -
![enter image description here](https://i.stack.imgur.com/LXe5Z.png)