--7.查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩(没成绩的显示为 null )
时间: 2024-05-08 19:22:00 浏览: 8
可以使用如下 SQL 语句查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:
```
SELECT s.id, s.name, COUNT(sc.course_id) AS course_count, SUM(sc.score) AS total_score
FROM students s
LEFT JOIN score sc ON s.id = sc.student_id
GROUP BY s.id, s.name;
```
该 SQL 语句中,使用了 `LEFT JOIN` 对 `students` 和 `score` 两张表进行连接,同时使用 `GROUP BY` 对学生编号和学生姓名进行分组,统计了每个学生的选课总数和所有课程的总成绩。其中,如果某个学生没有成绩,则该学生的总成绩为 `null`。
相关问题
mysql查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩(没成绩显示为null)
你可以使用以下的SQL查询语句来查询所有同学的学生编号,学生姓名,选课总数,所有课程的总成绩:
```
SELECT
s.student_id,
s.student_name,
COUNT(sc.course_id) AS course_count,
SUM(sc.score) AS total_score
FROM
students s
LEFT JOIN
score sc
ON
s.student_id = sc.student_id
GROUP BY
s.student_id,
s.student_name;
```
这个查询语句使用了LEFT JOIN来连接学生表和成绩表,并且使用了聚合函数来统计每个学生的选课总数和所有课程的总成绩。如果某个课程没有成绩,那么总成绩会显示为NULL。
mysql查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩
可以使用如下的 SQL 语句来查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:
```
SELECT
s.id AS student_id,
s.name AS student_name,
COUNT(sc.course_id) AS course_count,
SUM(c.score) AS total_score
FROM
student s
LEFT JOIN score sc ON s.id = sc.student_id
LEFT JOIN course c ON sc.course_id = c.id
GROUP BY
s.id, s.name;
```
其中,`student` 表存储了学生的信息,包括学生编号和学生姓名;`score` 表存储了学生选课的信息,包括学生编号和课程编号;`course` 表存储了课程的信息,包括课程编号和课程成绩。这里使用了左连接(LEFT JOIN)来保证即使学生没有选课,也能够被查询到。最后使用 GROUP BY 对学生进行分组,计算每个学生选课总数和所有课程的总成绩。