主题:求有点难度的sql语句
triumph
[专家分:160] 发布于 2006-11-02 17:40:00
请教你一个查询语句:统计每个班级的党员比例
表basicInfo
xh(学号) bj(班级) zzmm(政治面貌)
政治面貌只有三种(正式党员,预备党员,积极分子)
能以下表显示
班级 总人数 预备党员人数 正式党员人数 积极分子人数 党员比率(预备+正式)/总人数
回复列表 (共4个回复)
沙发
xsx [专家分:190] 发布于 2006-11-02 19:09:00
SELECT bj,COUNT(*)AS 总人数,COUNT(预备党员)AS 预备党员人数,COUNT(正式党员)AS 正式党员人数,COUNT(积极分子)AS 积极分子人数,(COUNT(预备党员)+COUNT(正式党员))/COUNT(*) as 比例 FROM basicInfo GROUP BY bj
板凳
Leo64823900 [专家分:960] 发布于 2006-11-03 22:54:00
select bj, count(*) as "总人数",
sum(case zzmm when '预备党员' then 1 else 0 end) as "预备党员人数",
sum(case zzmm when '正式党员' then 1 else 0 end) as "正式党员人数",
sum(case zzmm when '积极分子' then 1 else 0 end) as "积极分子人数",
sum(case zzmm when '积极分子' then 0 else 1 end)*1.0/count(*) as "党员比率"
FROM basicInfo
GROUP BY bj
3 楼
xibeilang [专家分:60] 发布于 2006-11-11 16:38:00
同意2楼
4 楼
peizhouluo [专家分:770] 发布于 2006-12-17 22:24:00
受益非常!·
我来回复