请问我的SQL语句有问题吗?怎么结果不正确呢?
我想按照产品类别统计合格率的问题,可是我的结果不对,请看看我的语句错在哪里?谢谢
CREATE TABLE test (xuhao char(6) ,
leibie char(6) ,
panding char(6))
insert into test
select '001 ', '甲 ', '合格 '
union all select '002 ', '甲 ', '不合格 '
union all select '003 ', '乙 ', '合格 '
union all select '004 ', '丙 ', '合格 '
union all select '005 ', '乙 ', '不合格 '
union all select '006 ', '丙 ', '合格 '
union all select '007 ', '甲 ', '不合格 '
union all select '008 ', '乙 ', '不合格 '
union all select '009 ', '丙 ', '合格 '
union all select '010 ', '甲 ', '合格 '
select * from test
select leibie,count(*) 总数,sum(CASE WHEN panding= '合格 ' THEN 1 else 0 END) AS 合格数,
合格率=100*(case when count(*) <> 0 then sum(CASE WHEN panding= '合格 ' THEN 1 else 0 END)/count(*) else 0 end)
from test group by leibie
上述语句的错误结果是:
xuhao leibie panding
------ ------ -------
001 甲 合格
002 甲 不合格
003 乙 合格
004 丙 合格
005 乙 不合格
006 丙 合格
007 甲 不合格
008 乙 不合格
009 丙 合格
010 甲 合格
(所影响的行数为 10 行)
leibie 总数 合格数 合格率
------ ----------- ----------- -----------
丙 3 &n