【问题标题】: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 用于每个不同的上下文类型。

【问题讨论】:

    标签: postgresql amazon-redshift


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2012-01-20
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      相关资源
      最近更新 更多