在PostgreSQL中计算百分比

我有一个这样的表,例如:

string adm

A 2

A 1

B 2

A 1

C 1

A 2

通过SQL查询,我想要这样的东西:

string    perc_adm (%)

A 50

B 100

C 0

我想要每个字符串中出现2的百分比。我可以在单独的条件下获得此信息,但我只需要一个条件。我也有一些除以零误差。在这种情况下,我该如何纠正?

回答:

尝试:

select 

string,

(cnt_2/total::float)*100 perc_adm

from (

select

string,

count(*) total,

sum(case when adm = 2 then 1 else 0 end) cnt_2

from tbl

group by string

) x

order by string

在这里,total::float将除法转换为一个float值,否则int/int ==>int

以上是 在PostgreSQL中计算百分比 的全部内容, 来源链接: utcz.com/qa/426444.html

回到顶部