知识点

  1. 建立一个新表加上一列各岗位平均值,使用窗口函数,筛选条件就是score大于平均分

代码

select id, job, score
from(
     select *, avg(score) over(partition by job) as avs
     from grade) as g1
where score > avs
order by id

补充

  1. 一开始的想法是id是唯一的,id in (select id from grade group by job having score>avg(score))
  2. 但是这样结果不全因为这里avg是总的平均,没有按照部门进行分组平均