SQL统计终于完成了
作者:admin 日期:2008-11-26
如何用SQL统计及格率、优秀率指标?
表格:
班级 学号 语文 数学
11 1 90 80
11 2 95 90
11 3 45 70
12 1 60 73
12 2 95 92
13 1 88 78...
如何按班级统计及格率、优秀率:
班级 人数 及格人数 优秀人数 及格率 优秀率
方法1:
Select DISTINCT t2.班级, t2.人数, t3.及格人数, t4.优秀人数, cast(t3.及格人数 as money) / t2.人数 AS 及格率, cast(t4.优秀人数 as money)/ t2.人数 AS 优秀率 FROM t1 LEFT OUTER JOIN (Select 班级, COUNT(*) AS 人数 FROM t1 GROUP BY 班级) t2 ON t1.班级 = t2.班级 LEFT OUTER JOIN (Select 班级, COUNT(*) AS 及格人数 FROM t1 Where 成绩 >= 60 GROUP BY 班级) t3 ON t1.班级 = t3.班级 LEFT OUTER JOIN (Select 班级, COUNT(*) AS 优秀人数 FROM t1 Where 成绩 >= 90 GROUP BY 班级) t4 ON t1.班级 = t4.班级
方法2:
Select 班级,count(*) as 人数,;sum(IIF(语文>=60,1,0)) as 语文及格人数,;sum(IIF(语文>=80,1,0)) as 语文优秀人数,;sum(IIF(语文>=60,1,0))*100/count(*) as 语文及格率,;sum(IIF(语文>=80,1,0))*100/count(*) as 语文优秀率,;sum(IIF(数学>=60,1,0)) as 数学及格人数,;sum(IIF(数学>=80,1,0)) as 数学优秀人数,;sum(IIF(数学>=60,1,0))*100/count(*) as 数学及格率,;sum(IIF(数学>=80,1,0))*100/count(*) as 数学优秀率 ;FROM 成绩表 GROUP BY 班级
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: