码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 中位数的题


    SQL270 考试分数(五)

    • 题目
    • 题解(105)
    • 讨论(312)
    • 排行
    • 面经

      new

    困难  通过率:28.22%  时间限制:1秒  空间限制:32M

    描述

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

    idjobscore
    1C++11001
    2C++11000
    3C++9000
    4JAVA12000
    5JAVA13000
    6B12000
    7B11000
    8B9999

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

    。。。

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

    请你写一个sql语句查询各个岗位分数的中位数位置上的所有grade信息,并且按id升序排序,结果如下:

    idjobscoret_rank
    2C++100002
    4Java120002
    5Java130001
    7B110002

    解释:

    第1行表示C++岗位的中位数位置上的为用户id为2,分数为10000,在C++岗位里面排名是第2

    第2,3行表示Java岗位的中位数位置上的为用户id为4,5,分数为12000,13000,在Java岗位里面排名是第2,1

    第4行表示B语言岗位的中位数位置上的为用户id为7,分数为11000,在前端岗位里面排名是第2

    (注意: sqlite 1/2得到的不是0.5,得到的是0,只有1*1.0/2才会得到0.5,sqlite四舍五入的函数为round,sqlite不支持floor函数,支持cast(x as integer) 函数,不支持if函数,支持case when ...then ...else ..end函数,sqlite不支持自定义变量)

    示例1

    输入:

    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,'B',12000),
    (7,'B',11000),
    (8,'B',9999);
    

    复制输出:

    2|C++|10000|2
    4|Java|12000|2
    5|Java|13000|1
    7|B|11000|2

    1. select
    2. id,job,score,rnk2 t_rank
    3. from
    4. (
    5. select
    6. id,job,score,count(1) over(partition by job) cnt
    7. ,row_number() over(partition by job order by score) rnk1
    8. ,row_number() over(partition by job order by score desc) rnk2
    9. from
    10. grade
    11. ) s1
    12. where round((1+cnt)/2) >= rnk1 and round((1+cnt)/2) >= rnk2
    13. order by id

  • 相关阅读:
    (24)Verilog编写复位激励三种方法
    Android studio 实现生成二维码和扫描二维码
    ARM——cortex-A7核 按键中断实验
    C++学习笔记(二十二)
    把Vue项目从Window系统迁移到Mac系统的方案
    CTF工具PDF隐写神器wbStego4open安装和详细使用方法
    计算机类编程课学生编写的代码应该如何管理
    【C++】反向迭代器精讲(以list为例)
    基于STM32结合CubeMX学习Free-RT-OS的源码之两类中断解析
    许家印遭投资人公开讨债:提请恒大清盘 祸起房车宝
  • 原文地址:https://blog.csdn.net/m0_69157845/article/details/126227912
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号