知识点
- 建立一个新表加上一列各岗位平均值,使用窗口函数,筛选条件就是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
补充
- 一开始的想法是id是唯一的,id in (select id from grade group by job having score>avg(score))
- 但是这样结果不全因为这里avg是总的平均,没有按照部门进行分组平均