
1、select stu姓名,stu院系
from stu join scor on stu学号=scor学号
join cou on cou课程号=scor课程号
where scor课程号='001'
2、select stu姓名,stu院系 --想看什么字段自己填吧 你没有说
from stu join scor on stu学号=scor学号
join cou on cou课程号=scor课程号
where cou课程名称 in('高数','数据库','信息系统')
and scor成绩>=60
3、select cou课程名称,avg(scor成绩) 平均成绩,max(scor成绩) 最好成绩
from stu join scor on stu学号=scor学号
join cou on cou课程号=scor课程号
group by cou课程名称
order by cou课程名称 asc
假设表有如下几列:班级、学号、姓名、成绩,且大于等于60分为及格,则
select 班级, count(distinct if(成绩>=60, 学号, null)) as 及格人数
from 成绩表
group by 班级;
select sum(case when 成绩>=60 then 1 else 0 end) as 及格人数,sum(case when 成绩<60 then 1 else 0 end )as 不及格人数,sum(case when 成绩 is null then 1 else 0 end )as 没有成绩人数 from 成绩表
没有考虑成绩表中一个人有多条课程的成绩记录的情况,应在之前查询方法上加上约束,如某班某课程中及格人数占总人数的百分比,即select (select COUNT() from Score where Cno=144502 and Cono=011 and Grade>=60)/(select COUNT() from Score where Cno=144502 and Cono=011)
通常成绩表中的数据项为学号,课程号,成绩,班级号 ,当一个人选了多门课有及格的也有不及格的时,仅仅靠楼上的回答不足以完成正确的查询,查询时要注意约束条件
呵呵,你这是一堆的问题呀:
优秀、良好……各级别的(人数):
首先,假设你的分数是 百分制,优秀即高于85分等。。。。
因此:
select 课程,count() as 人数,‘优秀’ as 类别
from 成绩
where 分数>85
group by 课程
union
select 课程,count() as 人数,‘良好’ as 类别
from 成绩
where 分数>70 and 分数<=85
group by 课程
union
select 课程,count() as 人数,‘及格’ as 类别
from 成绩
where 分数>60 and 分数<=70
group by 课程
分布情况及百分比:
得根据上面的结果来再计算。
先弄个总人数的视图:select count() as 总人数 from 成绩
再计算百分比:
select 课程,人数/总人数100% as 百分比 from 各级别人数 group by 课程,类别
其他的统计也就雷同了。
以上就是关于sql server查询问题。全部的内容,包括:sql server查询问题。、统计数学成绩表中各个班及格的人数SQL、使用SQL server进行成绩统计:分别统计每个班级对应学科及格人数和不及格人数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)