如何使用计数窗口函数获取百分比?
Posted
技术标签:
【中文标题】如何使用计数窗口函数获取百分比?【英文标题】:How to use a Count window function to get a percentage? 【发布时间】:2017-08-23 17:10:45 【问题描述】:假设我有下表和值:
CREATE TABLE test (
context text
);
INSERT INTO test VALUES ('idea'), ('vote'), ('vote'), ('query'), ('vote');
我希望能够在不使用 select 语句中的子查询的情况下找出表中行的百分比等于vote
(如果我不这样做,将更正我,将重新计算结果集中的每一行)。
我正在尝试这样的事情:
SELECT context, count(*) / count(*) OVER ()::DOUBLE PRECISION AS pct
FROM test
GROUP BY context
但没有成功。我希望看到类似的东西:
context_name
pct_of_total
用于每个不同的上下文类型。
【问题讨论】:
【参考方案1】:枚举数是按上下文划分的count,分母是count without partition
select distinct
context
,round( 100.0* count(1) over (partition by context) / count(1) over () ,2) as perc
from test
【讨论】:
以上是关于如何使用计数窗口函数获取百分比?的主要内容,如果未能解决你的问题,请参考以下文章