select cs.CNO as'科目编号',
cs.cn as'科目',count(1)as'总数',-- count(1) 表示总数sum(casewhen s.SCORE>=60then1else0end)as'及格数',(sum(casewhen s.SCORE>=60then1else0end)/count(1))*100as'及格率'from course cs
LEFTJOIN score s
on cs.CNO=s.CNO
groupby cs.CNO,cs.cn
2. 语文成绩第三名的各科成绩
select c.CN,e.SCORE
from course c,score e
where c.CNO=e.CNO
and e.scode =(select scode from
course c,score e
where
c.CNO=e.CNO
and c.CN="语文"ORDERBY e.SCORE DESClimit2,1)
3. 找出计算机系有什么科目的成绩有两人以上考到90+
查询出来所有的90+的人,在进行相关的学科分组,统计人数>2
这样临时表建立的太多
select*from(selectcount(*)as num,t.CN from(select
c.CN,e.SCORE FROM
dept d,course c,score e
where c.CNO=e.CNO
and d.CN like"计算机")t where
t.SCORE>=90groupby t.CN
) t1
where num>=2
4. 查询学生成绩分最高的人
select*from score c
wherenotexists(select1from score c1 where c1.cno = c.cno and c.SCORE < c1.SCORE);
5. 将学生成绩打平展示。显示为学生姓名,语文多少分,数学多多少分,无成绩的也要展现出来
select s.sname,c.CN,e.SCORE
FROM
students s,score e,course c
where e.scode=s.scode
and e.CNO=c.CNO
文章目录题目:1.统计各科的及格率2. 语文成绩第三名的各科成绩3. 找出计算机系有什么科目的成绩有两人以上考到90+4. 查询学生成绩分最高的人5. 将学生成绩打平展示。显示为学生姓名,语文多少分,数学多多少分,无成绩的也要展现出来count(*),count(1),count(列名的区别)题目:1.统计各科的及格率select cs.CNO as '科目编号',cs.cn as '科目',count(1) as '总数', -- count(1) 表示总数sum(case when s.S