SQL 查询平均成绩,最高成绩和最低成绩,使用关系
时间: 2024-02-26 10:58:44 浏览: 33
假设我们有一个学生表(Student)和一个成绩表(Score),它们之间的关系是一对多的关系,即一个学生可以有多个成绩记录。
我们可以使用以下 SQL 查询语句来获取学生的平均成绩、最高成绩和最低成绩:
```
SELECT
Student.name,
AVG(Score.score) AS avg_score,
MAX(Score.score) AS max_score,
MIN(Score.score) AS min_score
FROM
Student
JOIN Score ON Student.id = Score.student_id
GROUP BY
Student.id;
```
这个查询语句使用了 `JOIN` 操作符来将学生表和成绩表连接起来。然后使用 `AVG`、`MAX` 和 `MIN` 聚合函数来计算平均成绩、最高成绩和最低成绩。最后使用 `GROUP BY` 子句将结果按学生分组。
相关问题
sql 查询各科成绩最高分最低分
SQL查询各科成绩最高分、最低分和平均分可以使用以下语句:
SELECT courseid, MAX(score) AS '最高分', MIN(score) AS '最低分', AVG(score) AS '平均分' FROM student_score GROUP BY courseid;
其中,courseid是课程ID,score是成绩。使用MAX函数可以得到最高分,MIN函数可以得到最低分,AVG函数可以得到平均分。GROUP BY语句可以按照课程ID分组,得到每个课程的成绩情况。
引用中提到了可以使用MAX(score) AS '最高分', MIN(score)AS '最低分'这种写法,这是因为MAX和MIN函数可以对一列数据进行聚合操作,得到该列数据的最大值和最小值。
引用中的语句在查询各科成绩最高分、最低分和平均分的基础上,还计算了及格率、中等率、优良率和优秀率。其中,及格率是指成绩大于等于60分的学生占总人数的比例,中等率是指成绩在70-80分之间的学生占总人数的比例,优良率是指成绩在80-90分之间的学生占总人数的比例,优秀率是指成绩大于等于90分的学生占总人数的比例。这些比例可以使用SUM和CASE WHEN语句计算得到。
SqlServer 查询课程名为操作系统的平均成绩、最高分、最低分
可以使用以下的SQL查询语句:
```
SELECT
AVG(Score) AS AvgScore,
MAX(Score) AS MaxScore,
MIN(Score) AS MinScore
FROM
Scores
WHERE
CourseName = '操作系统';
```
其中,我们从名为 `Scores` 的表中选择平均成绩、最高分、最低分,并使用 `AVG`、`MAX` 和 `MIN` 聚合函数计算这些值。同时,我们通过 `WHERE` 子句来指定只查询课程名为 `操作系统` 的成绩。