题解 | #考试分数(二)#
考试分数(二)
https://www.nowcoder.com/practice/f456dedf88a64f169aadd648491a27c1
v1 思路:当score>avg_score
v1 结果错误。原因:子查询不止一行,而是每个job一行avg_score
select * from grade where score > ( select avg(score) as avg_score from grade group by job ) order by id asc
v2 思路:聚合表,增加一列avg_score。对比score>avg_score
v2结果成功
select g1.* from grade g1 left join ( select job,avg(score) as avg_score from grade group by job )g2 on g1.job=g2.job where g1.score > g2.avg_score