回 帖 发 新 帖 刷新版面

主题:求有点难度的sql语句

请教你一个查询语句:统计每个班级的党员比例
表basicInfo
xh(学号)  bj(班级)  zzmm(政治面貌)
政治面貌只有三种(正式党员,预备党员,积极分子)
能以下表显示
班级   总人数  预备党员人数  正式党员人数  积极分子人数 党员比率(预备+正式)/总人数

回复列表 (共4个回复)

沙发

SELECT bj,COUNT(*)AS 总人数,COUNT(预备党员)AS 预备党员人数,COUNT(正式党员)AS 正式党员人数,COUNT(积极分子)AS 积极分子人数,(COUNT(预备党员)+COUNT(正式党员))/COUNT(*) as 比例 FROM basicInfo GROUP BY bj

板凳

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 楼

同意2楼

4 楼

受益非常!·

我来回复

您尚未登录,请登录后再回复。点此登录或注册