SQL73 考试分数(二)

描述

牛客每次考试完,都会有一个成绩表(grade),如下:

第1行表示用户id为1的用户选择了C++岗位并且考了11001分

。。。

第8行表示用户id为8的用户选择了前端岗位并且考了9999分

请你写一个sql语句查询用户分数大于其所在工作(job)分数的平均分的所有grade的属性,并且以id的升序排序,如下:

drop table if exists grade;
CREATE TABLE  grade(
`id` int(4) NOT NULL,
`job` varchar(32) NOT NULL,
`score` int(10) NOT NULL,
PRIMARY KEY (`id`));

INSERT INTO grade VALUES
(1,'C++',11001),
(2,'C++',10000),
(3,'C++',9000),
(4,'Java',12000),
(5,'Java',13000),
(6,'JS',12000),
(7,'JS',11000),
(8,'JS',9999),
(9,'Java',12500);
SELECT a.id,a.job,a.score FROM grade a
LEFT JOIN 
(
    SELECT job,AVG(score) as pp FROM grade
    GROUP BY job
) b
ON a.job = b.job
WHERE a.score > b.pp
posted @ 2021-11-20 17:00  杜嘟嘟  阅读(17)  评论(0编辑  收藏  举报