请编写 SQL 语句,查询 teachers 表中,各个国家所有教师的平均年龄大于所有国家教师的平均年龄的教师信息。

请编写 SQL 语句,查询 teachers 表中,各个国家所有教师的平均年龄大于所有国家教师的平均年龄的教师信息。

img


select * from teachers
 where teachers.id=(select id,avg(age) as avg_age1 from teachers group by id having 
avg_age1> (select avg(age) as avg_age from teachers )).id;

这个是我的思路是先找出整体平均年龄,在找出每个国家教师的平均年龄,然后根据ID进行匹配,但是不知道怎么写出来
结果是错了 ,
感觉可以创建表 在做匹配但是感觉 应该有更简单的操作。

group 只能列出 group 中出现的字段和聚合函数的到的结果,另外,所有教室的平均年龄,并不需要group,直接 avg 即可


select * from teachers
where age>(select avg(age) from teachers)