为空的话不能当做不合格的,如果合格为空那么合格率就为0,不合格为空的话,应该是(合格的人数)/(合格的人数+0)[/quote]
select t.scoregroup,count(*),sum(decode(nvl(t.kmzt,33),32,1,0))/sum(nvl2(t.kmzt,0,1)) from tab_name t group by t.scoregroup [/quote]kmzt这一列不会有空的数据,可能我没讲清楚,按照现在的scoregroup分组,每个分组理论上应该有两条数据,一条是合格的,一条是不合格的,但是有可能两者任一。
为空的话不能当做不合格的,如果合格为空那么合格率就为0,不合格为空的话,应该是(合格的人数)/(合格的人数+0)[/quote]
select t.scoregroup,count(*),sum(decode(nvl(t.kmzt,33),32,1,0))/sum(nvl2(t.kmzt,0,1)) from tab_name t group by t.scoregroup