我有一个这样的表格,例如:
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 :(得分: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
。