select to_char((select count(1) from table where type = 1)/(select count(1) from table),'990.99')||'%' from dual; 以此类推,大意如此
with t as( select 1 xh,1 cj from dual union all select 2,1 from dual union all select 3,2 from dual union all select 4,1 from dual union all select 5,2 from dual union all select 6,1 from dual union all select 7,3 from dual union all select 8,2 from dual union all select 9,1 from dual union all select 10,3 from dual )select sum(decode(cj,1,1))*100/count(1)||'%' 不合格, sum(decode(cj,2,1))*100/count(1)||'%' 合格, sum(decode(cj,3,1))*100/count(1)||'%' 一般 from t不合格 合格 一般 ----------------------------------------- ----------------------------------------- ----------------------------------------- 50% 30% 20%
以此类推,大意如此
with t as(
select 1 xh,1 cj from dual
union all
select 2,1 from dual
union all
select 3,2 from dual
union all
select 4,1 from dual
union all
select 5,2 from dual
union all
select 6,1 from dual
union all
select 7,3 from dual
union all
select 8,2 from dual
union all
select 9,1 from dual
union all
select 10,3 from dual
)select sum(decode(cj,1,1))*100/count(1)||'%' 不合格,
sum(decode(cj,2,1))*100/count(1)||'%' 合格,
sum(decode(cj,3,1))*100/count(1)||'%' 一般
from t不合格 合格 一般
----------------------------------------- ----------------------------------------- -----------------------------------------
50% 30% 20%