Я пытаюсь создать статистику за значение для столбца в таблице, генерируя само значение, количество вхождений этого значения в таблицу и% от суммы из общей суммы ,Статистика по сравнению с таблицей в PostgreSQL
У меня есть таблица, например, как в следующем примере:
Table "public.films"
Column | Type | Modifiers
--------+-----------------------+-----------
code | character(5) |
title | character varying(40) |
# select * from films;
code | title
-------+-------
a1123 | yo1
a1124 | yo1
a1125 | yo2
a110 | yo3
a110v | yo3
a1a | yo3
a1az | yo3
(7 rows)
Я попытался с помощью ранга() и percent_rank() для достижения этой цели, но это не сработало. Ожидаемый результат для приведенного выше примера будет:
# select * from films;
title | title_count | title_percent
-------+-------------+-------------------
yo1 | 2 | 28%
yo2 | 1 | 14%
yo3 | 4 | 57%
Что наиболее эффективный запрос для достижения этой цели, принимая во внимание, что таблица будет содержать более 100 миллионов значений? (Столбец индексируется)
Спасибо, прост и работает! я надеюсь, что это не будет медленным для больших таблиц, принятым, поскольку все остальные ответы являются производными от этого – dispolito