题解 | #考试分数(二)#

考试分数(二)

https://www.nowcoder.com/practice/f456dedf88a64f169aadd648491a27c1

select t.id, t.job,t.score from (
                            select *,avg(score) over (partition by job) avg_  from grade 
) as t
where t.score > t.avg_
order by t.id

三种方式:子查询,内连接,窗口函数

法一:窗口函数

如上【大概意思就是从窗口函数里取】

法二:内连接

select t1.* from grade t1

left join (select job,avg(score) avg_from grade group by job) t2

on t1.job=t2.job

where t1.score>t2.avg_

order by t1.id

法三:子查询

select * from grade t1

where score>(select avg(score) from grade t2

where t1.job=t2.job)#一定不要忘where t1.job=t2.job,否则报错

order by id asc

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务