gpt4 book ai didi

sql - PostgreSQL : Percentage without a WHERE

转载 作者:行者123 更新时间:2023-11-29 13:21:04 25 4
gpt4 key购买 nike

我需要获取百分比但不能使用 WHERE 子句,因为它是大型 SQL 查询的一部分。

我尝试这样做:

select (count(sector='Rurality'))/(count(sector))*100 as test from study

但第一次计数得到的是完整结果而不是过滤。

换句话说,这是行不通的:

select COUNT(sector='Rurality') AS test FROM study;

也许有人有什么想法?问题是过滤器在所有这一切之后都粘在了 SQL 查询上,但不能添加 WHERE sector="rurality"。

最佳答案

这就是FILTER用于:

select count(*) filter (where sector = 'Rurality') test from study;

对于较旧的 PostgreSQL,您可以使用 CASE构造,但不要忘记省略 ELSE 子句以不计算 NULL 值:

select count(case sector when 'Rurality' then 1 end) test from study;

此外,bigint/bigint 将是 bigint,因此请使用强制转换和/或圆括号,或者重新构造您的公式,例如:

select 100.0 * count(*) filter (where sector = 'Rurality') / count(sector) test
from study;

关于sql - PostgreSQL : Percentage without a WHERE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41722675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com