假设有两个表,一个是学生表(Student),另一个是学生选课表(SC),SQL查询每个班级的学生人数及其总平均成绩
时间: 2024-05-15 11:15:44 浏览: 36
可以使用以下SQL语句实现:
```
SELECT Student.class, COUNT(DISTINCT Student.id) AS student_count, AVG(SC.score) AS avg_score
FROM Student
LEFT JOIN SC ON Student.id = SC.student_id
GROUP BY Student.class;
```
解释:
1. 首先从学生表中查询班级信息,并按照班级进行分组,使用`GROUP BY`语句实现。
2. 然后使用`LEFT JOIN`语句将学生表和学生选课表连接起来,连接条件是学生表的`id`字段和选课表的`student_id`字段相等。
3. 在`SELECT`语句中,使用`COUNT(DISTINCT Student.id)`来计算每个班级的学生人数,使用`AVG(SC.score)`来计算每个班级的学生平均成绩。
4. 最后得到的结果是每个班级的学生人数和平均成绩。
相关问题
用sql语句完成下列查询:学生表Student,课程表Course,选课表SC
查询选了课程号为001的学生的姓名和选课成绩:
```sql
SELECT Student.name, SC.score
FROM Student
INNER JOIN SC ON Student.id = SC.student_id
WHERE SC.course_id = '001';
```
mysql有student表,course表,sc表,查询每个学生选修课成绩大于80分的情况
可以使用如下的 SQL 查询语句来实现:
```
SELECT s.*, c.name as course_name, sc.score
FROM student s, course c, sc
WHERE s.id = sc.sid
AND c.id = sc.cid
AND sc.score > 80;
```
这个查询语句使用了多表联合查询,将学生表、课程表和选课表进行联合查询,筛选出选修课成绩大于80分的记录,并返回学生的信息、课程名称和成绩。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)