【牛客网】SQL练习

痛定思痛。 2022-12-08 15:45 88阅读 0赞

1、考试分数(一)

https://www.nowcoder.com/practice/f41b94b4efce4b76b27dd36433abe398?tpId=82&&tqId=35492&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking

  1. select job, ROUND(AVG(score)*1.0, 3) `avg` from grade group by job
  2. order by `avg` desc;
  3. select job, round(avg(score), 3) as avg_score from grade group by job
  4. order by avg_score desc;

2、考试分数(二)

https://www.nowcoder.com/practice/f456dedf88a64f169aadd648491a27c1?tpId=82&rp=1&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking

题目有误,应该是“查找分数大于其所在工作组的平均分的用户”

采用连接的方式:

  1. select grade.id, grade.job, grade.score
  2. from grade, (select job, avg(score) as avg_score from grade group by job) as temp
  3. where grade.job = temp.job and grade.score > temp.avg_score order by grade.id;
  4. select t1.* from grade t1 INNER JOIN (
  5. select job, round(avg(score)*1.0, 3) `avg` from grade group by job
  6. ) t2
  7. on t1.job = t2.job and t1.score > t2.`avg`
  8. order by t1.id;

采用子查询的方式:

  1. select x.id, x.job, x.score from grade as x where x.score > (
  2. select avg(y.score) from grade as y where y.job = x.job group by y.job
  3. )
  4. order by x.id asc;

3、考试分数(三)

https://www.nowcoder.com/practice/b83f8b0e7e934d95a56c24f047260d91?tpId=82&rp=1&ru=%2Fta%2Fsql&qru=%2Fta%2Fsql%2Fquestion-ranking

首先,

  1. select t1.id from grade as t1 join grade as t2
  2. on t1.language_id = t2.language_id and t1.socre <= t2.score
  3. group by t1.language_id, t1.id having count(distinct t2.score) < 3;

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js刷题练习---

    > 这段时间有部分小伙伴在问有没有什么好的刷题网站 > 在这里给大家推荐一款刷题网站[点击访问牛客网][Link 1] > 牛客网支持多种编程语言的学习,各大互联网大厂

    相关 剑指offer练习20200126

    1.顺时针打印矩阵 这是我第一次的思路,说实话没懂自己为啥不能用,说是语法错误和数组越界? 大致的思路是一次递归减少外面的一圈,然后把减少完的数组投入下一次递归= =,【【

    相关 练习2018.3.20

    1. Socket套接字: 就是源Ip地址,目标IP地址,源端口号和目标端口号的组合 服务器端:ServerSocket提供的实例 ServerSocket server