mysql查询course表中每门课程的平均成绩,最高成绩,成绩之和
时间: 2024-01-30 22:02:14 浏览: 26
好的,你可以使用如下的 SQL 语句来实现:
```
SELECT cno, AVG(score) AS avg_score, MAX(score) AS max_score, SUM(score) AS sum_score
FROM sc
GROUP BY cno;
```
这条语句会查询 `sc` 表中每门课程的平均成绩、最高成绩和成绩之和,使用 `GROUP BY` 子句对课程号进行分组,并使用 `AVG()`、`MAX()` 和 `SUM()` 函数分别求出平均成绩、最高成绩和成绩之和。
相关问题
51) 查询各门课的平均成绩,最高成绩以及最低成绩。要求有课程名称mysql
假设成绩表的结构如下:
| id | student_id | course_id | score |
|----|------------|-----------|-------|
| 1 | 1001 | 1 | 80 |
| 2 | 1002 | 1 | 85 |
| 3 | 1003 | 1 | 90 |
| 4 | 1001 | 2 | 75 |
| 5 | 1002 | 2 | 70 |
| 6 | 1003 | 2 | 65 |
| 7 | 1001 | 3 | 95 |
| 8 | 1002 | 3 | 85 |
| 9 | 1003 | 3 | 90 |
可以使用如下 SQL 语句查询各门课的平均成绩、最高成绩以及最低成绩:
```
SELECT
c.name AS course_name,
AVG(s.score) AS average_score,
MAX(s.score) AS max_score,
MIN(s.score) AS min_score
FROM
score s
JOIN course c ON s.course_id = c.id
GROUP BY
c.name;
```
查询结果如下:
| course_name | average_score | max_score | min_score |
|-------------|---------------|-----------|-----------|
| 语文 | 85.00 | 90 | 80 |
| 数学 | 70.00 | 75 | 65 |
| 英语 | 90.00 | 95 | 85 |
在MySQL中,删除成绩表中108课程的全部课程信息,将陈伟的电话号码删除,查询除了020101外每个学生的平均分和最高分
删除成绩表中108课程的全部课程信息的SQL语句如下:
```
DELETE FROM score WHERE course_id = '108';
```
将陈伟的电话号码删除的SQL语句如下:
```
UPDATE student SET phone_number = NULL WHERE name = '陈伟';
```
查询除了020101外每个学生的平均分和最高分的SQL语句如下:
```
SELECT student_id, AVG(score) AS avg_score, MAX(score) AS max_score
FROM score
WHERE course_id <> '020101'
GROUP BY student_id;
```