列出每位学生的年龄,并分别统计每个班的平均年龄。
时间: 2024-02-23 12:03:03 浏览: 110
利用聚集函数AVG求某班学生的平均年龄
好的,以下是查询语句:
```
SELECT s.name, TIMESTAMPDIFF(YEAR, s.birthday, CURDATE()) AS age, AVG(TIMESTAMPDIFF(YEAR, s.birthday, CURDATE())) AS avg_age
FROM student s
INNER JOIN class c ON s.class_id = c.id
GROUP BY s.id, c.id
```
解释一下这个语句的含义:
首先,从学生表(student)和班级表(class)中联接出学生的姓名(name)、生日(birthday)和班级id(class_id)。
然后,使用TIMESTAMPDIFF函数计算出每个学生的年龄(age)。
接着,使用INNER JOIN将学生表和班级表联结起来,以便后面根据班级分组统计平均年龄(avg_age)。
最后,使用GROUP BY对学生和班级进行分组,以便统计每个班级的平均年龄(avg_age)。
希望能对你有所帮助!
阅读全文