A. 一条sql语句查询出三年级所有老师所带学生的及格率 :老师名称 老师所带学生数目 及格学生数目
select C_TEACH_NAME,(select count(*) as count0 from c,e,f where c.C_TEACH_CODE=e. C_TEACH_CODE and e.C_CLASS_CODE=f.C_CLASS_CODE group by C_TEACH_NAME),(select count(*) as count1,round(count1/count0,2) from c,e,f,g where c.C_TEACH_CODE=e. C_TEACH_CODE and e.C_CLASS_CODE=f.C_CLASS_CODE and f.C_STUDENT_CODE=g.C_STUDENT_CODE and N_STUDENT_SCORE>=60 group by C_TEACH_NAME) from c group by C_TEACH_NAME;
B. 一张学生成绩表内SQL查询每个班级每门课程的平均分
平均分:
select avg(分数) from a group by 班级,课程
及格率:
select (select count(*) from a where 分数>60 group by 班级,课程)
/(select count(*) from a group by 班级,课程)
C. 写一句sql 求科目数及格率 百分比显示
SELECTco,SUM(CASEWHENsco>=60THEN1ELSE0END)/(COUNT(*)*1.0)AS及格率
FROMXXX
GROUPBYco;
SELECTco,CAST(FLOOR(SUM(CASEWHENsco>=60THEN1ELSE0END)/(COUNT(*)*1.0)*100)ASVARCHAR)+'%'AS及格率
FROMXXX
GROUPBYco;
D. SQL语句求助,查询出每门课程及格和不及格的人数
select a.score ,count as 人数 ,col2 as 科目 from
(select case when col1>=60 then '及格' else '不及格' end as score ,col2 from tb g )
a group by a.score,a.col2
E. sql select语句求及格率(带百分号)
select cast( cast ( ( select count(1) as jige from 表 where 课程名称 = 'C语言' and 分数 >= 60 ) as numeric(10,4) ) / cast ( ( select count(1) as jige from 表 where 课程名称 = 'C语言' ) as numeric(10,4) ) * 100 as varchar(20) ) + '%'
F. SQL语句求助,查询出每门课程及格和不及格的人数
---以下在SQL2005执行通过--
---结果将以 科目、及格数、不及格数 显示
select * from
(select col2,count(*) as [及格数]
from tb
where col1>=60
group by col2
)t
outer apply
(select count(*) as [不及格数]
from tb
where col1<60 and t.col2= col2
group by col2
)m
-----这应该是楼主想要的了吧。
G. 求各班各科及格率的sql语句
select 班级,课程,count(*)/40 as 及格率 from 表名 where 成绩>60 group by 班级,课程
H. SQL 查询某门课程及格的总人数以及不及格的总人数以及没成绩的人数
你的要求有点特别,要求
学号!
如果只是
统计每门课程的不及格人数下面的sql就可以啦:
select
cnum,count(cnum)
as
不及格人数
from
sc
where
score
<
60
group
by
cnum
注意:是对课程号分组哟,楼上的是错的。
如果你要输出学号:
select
sc.snum
as
学号,
a.cnum
as
课程号,
a.不及格人数
from
sc,
(select
cnum,count(cnum)
as
不及格人数
from
sc
where
score
<
60
group
by
cnum)
as
a
where
sc.score<60
and
sc.cnum=a.cnum
以上我相信是没有问题的,你测试一下!
如果ok,给分哟
呵呵