У меня есть две таблицы, сообщения и голоса, где в голосах есть post_id. Я хочу подсчитать, сколько сообщений имеют 1 голос, 2 голоса, 3 голоса и т. Д.
Когда я использую этот запрос
select count(post_id) from votes group by post_id
Я получаю следующие результаты
3
3
1
2
2
2
1
Теперь я хочу посчитать, сколько раз я получил 3, 2, 1:
Итак, я хочу получить
3 2
2 3
1 2
Но когда я пытаюсь подсчитать результаты из подзапроса, я получаю следующую ошибку:
select x,count(x) from (select count(post_id) from votes group by post_id) as x group by x;
ERROR: column "x.count" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: select x,count(x) from (select count(post_id) from votes...
И я тоже не могу группировать по количеству, потому что когда я это делаю, я получаю следующее:
x | count
------+-------
(1) | 1
(2) | 2
(3) | 3