求考试分数大于平均分数的数据
考试分数(二)
http://www.nowcoder.com/questionTerminal/f456dedf88a64f169aadd648491a27c1
- 首先根据题目要求,查询用户分数大于该岗位平均分数的数据,这一点很重要,因此我们需要先以岗位类型分组,然后求该类型岗位的平均分数,这里需要用到平均数函数AVG,并且为了跟准确,我们保留小数点后三位,会用到函数round
select job, round(avg(score), 3) as score1 from grade group by job
- 第一步查询得到一个临时表,表的信息为岗位 : 平均工资
- 接下来,我们将临时表与原来的数据表进行合并,并求分数大于平均分数的数据,同时使用order by 进行正序排序
select a.* from grade as a left join (select job, round(avg(score), 3) as score1 from grade group by job) AS b on a.job = b.job where a.score > b.score1 order by a.id;