Получить процент записей с определенной категорией - PullRequest
0 голосов
/ 29 мая 2018

У меня есть таблица с колонкой category.Эти столбцы имеют тип STRING.

Как я могу получить процент от общего количества записей с этой категорией?

То, что я пока имею, составляет

select category, count(1) from table group by category;

ожидаемый результат:

category | count | percent
cat_a       10       10
cat_b       80       80
cat_c       10       10

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Вы почти у цели.Просто поместите ваш запрос во внешний запрос, используя оконные функции:

SELECT category, cnt,
       cnt / sum(cnt) OVER () AS percent
FROM (SELECT category, count(1) AS cnt
      FROM "table"
      GROUP BY category) q;
0 голосов
/ 29 мая 2018

использовать оконные функции :

SELECT
category, COUNT(*) / SUM(COUNT(*)) OVER ()::REAL
FROM table t
GROUP BY 1

В postgresql вы можете использовать оконные функции и агрегатные функции вместе.окна оцениваются после объединения, где, группируются по & с предложениями, и может быть несколько окон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...