admin 管理员组

文章数量: 887021


2023年12月18日发(作者:在线教程观看)

sql 嵌套查询题目

SQL 嵌套查询题目

题目描述:有三张表格:学生表格(student)包含学生编号(stuid)、姓名(name)和班级编号(classid);班级表格(class)包含班级编号(classid)和班级名称(classname);成绩表格(score)包含学生编号(stuid)、科目编号(subjectid)和成绩(score)。请编写 SQL 查询语句,查询“张三”所在班级每一门科目的平均成绩,并按照科目名称排序。

题目分析:本题需要进行嵌套查询,首先需要得到“张三”所在班级的班级编号,然后将班级编号与成绩表格的学生编号进行匹配,得到“张三”在该班级的所有科目成绩,最后按照科目名称进行排序,计算出平均成绩。

SQL 查询语句:

SELECT tname, AVG() AS avgscore

FROM score

INNER JOIN

(SELECT d,

FROM class

INNER JOIN student ON d = d

WHERE = '张三') AS classandstu ON =

INNER JOIN subject ON tid = tid

GROUP BY tname

ORDER BY tname;

查询结果:

subjectname | avgscore

------------+---------

语文 | 85

数学 | 92

英语 | 80

本查询语句首先通过嵌套查询得到“张三”所在班级的班级编号和学生编号,然后通过 INNER JOIN 连接学生成绩表格,得到在该班级中“张三”的每一门科目成绩,最后通过 INNER JOIN 连接科目表格得到每一门科目的名称,并通过 GROUP BY 和 AVG 函数计算出平均成绩。最后按照科目名称排序,得到最终结果。


本文标签: 查询 编号 表格 科目 班级