mysql统计每个学生的选课门数_SQL一个查询中包含两个聚集函数怎么弄啊例如,查询每名学生的选课门数和平均成绩怎么弄啊...
时间: 2024-02-05 16:11:14 浏览: 109
可以使用子查询来实现此功能。首先,在主查询中使用GROUP BY语句按学生姓名分组,并使用COUNT函数计算每个学生选课的门数。然后,在子查询中,使用AVG函数计算每个学生的平均成绩。最后,将两个查询联接在一起即可。
具体的SQL语句如下:
```
SELECT
s.id,
s.name,
COUNT(*) AS course_count,
(SELECT AVG(score) FROM scores WHERE student_id = s.id) AS avg_score
FROM
students AS s
INNER JOIN
scores AS sc ON s.id = sc.student_id
GROUP BY
s.id, s.name
```
这里,我们假设学生表名为students,成绩表名为scores,每个成绩记录包含学生ID、课程ID和分数。以上SQL语句中,我们使用INNER JOIN将学生表和成绩表联接在一起。在主查询中,使用GROUP BY语句按学生ID和姓名分组,并使用COUNT函数计算每个学生选课门数。在子查询中,使用AVG函数计算每个学生的平均成绩,并将结果作为avg_score返回。
阅读全文