当前位置:首页 > 课程 > 正文

sql查询学生课程及成绩

  • 课程
  • 2024-09-28 09:59:22
  • 4611
本文目录一览

I、sql同时查询学生平均分和课程平均分?

话不多说,直接上代码,后面是代码解析

SELECT stu.sname AS 姓名,cou.cname AS 课程名,sco.degree AS 成绩,t3.Avgdegree AS 每平均分,t4.Avgdegree AS 每门课程平均分
FROM Student stu
INNER JOIN Score sco ON stu.sno = sco.sno
INNER JOIN Course cou ON cou.cno = sco.cno
INNER JOIN 
(
SELECT t1.sno,t1.sname,G(t2.degree) AS Avgdegree
FROM Student t1 
INNER JOIN Score t2 ON t1.sno = t2.sno 
GROUP BY t1.sno,t1.sname
) t3 ON stu.sno = t3.sno
INNER JOIN 
(
SELECT cno,G(degree) as Avgdegree
FROM score 
GROUP BY cno
) t4 ON sco.cno = t4.cno

代码解析:

该问题的关键点在于,怎么用一行代码计算出每的平均分,以及每门课程的平均分

这时需要用到临时表T3、T4

临时表T3,用于计算每平均分

临时表T4,用于计算每门课程平均分

II、怎么用SQL查询平均成绩最低的学生姓名及所选课程名?

您可以写以下SQL代码来查询平均成绩最低的学生的姓名和所选课程:
WITH学生平均成绩AS(
SELECT学生ID,G(成绩)as平均成绩
FROM学生成绩
GROUPBY学生ID
)
SELECTs.姓名,c.课程名称
FROM学生平均成绩sag
JOIN学生sONsag.学生ID=s.ID
JOIN学生课程scONsag.学生ID=sc.学生ID
JOIN课程cONsc.课程ID=c.ID
ORDERBYsag.平均成绩
LIMIT1
注意:以上代码假定您有名为学生成绩(具有列学生ID和成绩)、学生(具有列ID和姓名)、学生课程(具有列学生ID和课程ID)和课程(具有列ID和课程名称)的表。

III、怎么用SQL语句查询每个学生选修的课程名及其成绩?

select姓名,课程名,成绩from(课程名所在的表名Cjoin成绩所在的表名SonC.课程号=S.课程号)join学生信息表onS.学号=学生信息表.学号;
具体的例子:
selectSname,Cname,GradefromStudentstleftjoin(ScoresleftjoinCoursecons.Cno=c.Cno)
onst.Sno=s.Sno;