在PostgreSQL中计算百分比
发布于 2021-06-04 17:02:19
我有一个这样的表,例如:
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的百分比。我可以在单独的条件下获得此信息,但我只需要一个条件。我也有一些除以零误差。在这种情况下,我该如何纠正?
关注者
0
被浏览
125
1 个回答
-
尝试:
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
。