sql server查询问题。

sql server查询问题。,第1张

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进行成绩统计:分别统计每个班级对应学科及格人数和不及格人数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9816154.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存