- 每个岗位的平均分sql代码如下:
(select job,round(avg(score*1.000),3) as avg from grade
group by job)
- 可以上面查询出来的数据看成一个新表,用现在的表去联立这个新表,获得当job相同时,现在的表大于新表的分数,就可以得到各个岗位大于平均数的信息,最后按照id升序
select grade.* from grade join
(select job,round(avg(score*1.000),3) as avg from grade
group by job) as t
on grade.job=t.job --联立新表,job相同
WHERE
grade.score > t.avg --现在的表的分数大于新表的分数
order by id