代码之家  ›  专栏  ›  技术社区  ›  Vinita

如何在SQL中找到百分比?

  •  -2
  • Vinita  · 技术社区  · 1 年前

    我有这样的数据: Survived  cnt
No        549
Yes       342

    我想把百分比作为每行的第三列,编号-549/(549+342) 是-342/(549+342)

    我试过了 select Survived, cnt, round(100*(cnt/sum(cnt)), 2) as prcntage from survivalCnt 以及分组,但似乎什么都不起作用, 我也尝试过分区。

    有人能帮我吗?我知道这是一个简单的问题,我似乎无法确定答案

    1 回复  |  直到 1 年前
        1
  •  0
  •   Max_Stone    1 年前

    您需要一个子查询来运行计算

    SELECT
        Survived,
        cnt,
        (cnt * 100.0 / (SELECT SUM(cnt) FROM survival_data)) AS "%"
    FROM
        survival_data;
    
        2
  •  0
  •   Charlieface    1 年前

    您可以使用窗口函数,这将比子查询更有效。您还需要转换或乘以小数。

    SELECT
        Survived,
        cnt,
        cnt * 100.0 / SUM(cnt) OVER () AS "%"
    FROM
        survival_data;