文章目录

  • 1. 题目
  • 2. 解题

1. 题目

Employee 表包含所有员工。Employee 表有三列:员工Id,公司名和薪水。

+-----+------------+--------+
|Id   | Company    | Salary |
+-----+------------+--------+
|1    | A          | 2341   |
|2    | A          | 341    |
|3    | A          | 15     |
|4    | A          | 15314  |
|5    | A          | 451    |
|6    | A          | 513    |
|7    | B          | 15     |
|8    | B          | 13     |
|9    | B          | 1154   |
|10   | B          | 1345   |
|11   | B          | 1221   |
|12   | B          | 234    |
|13   | C          | 2345   |
|14   | C          | 2645   |
|15   | C          | 2645   |
|16   | C          | 2652   |
|17   | C          | 65     |
+-----+------------+--------+

请编写SQL查询来查找每个公司的薪水中位数

挑战点:你是否可以在不使用任何内置的SQL函数的情况下解决此问题。

+-----+------------+--------+
|Id   | Company    | Salary |
+-----+------------+--------+
|5    | A          | 451    |
|6    | A          | 513    |
|12   | B          | 234    |
|9    | B          | 1154   |
|14   | C          | 2645   |
+-----+------------+--------+

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/median-employee-salary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 算出每个公司的人数、薪水的排序
  • where 选择,根据人数奇偶筛选
# Write your MySQL query statement belowselect Id, Company, Salary
from
(select *, row_number() over (partition by Company order by Salary) rnk,count(*) over (partition by Company) numfrom Employee
) t
where((num%2=1 and rnk = floor(num/2)+1)or(num%2=0 and (rnk = floor(num/2) or rnk = floor(num/2)+1)))

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 569. 员工薪水中位数(over窗口函数)相关推荐

  1. 【LeetCode-SQL】569. 员工薪水中位数

    目录 一.题目 二.解决 1.窗口函数 2.自关联后分组筛选 三.参考 一.题目 表: Employee +--------------+---------+ | Column Name | Type ...

  2. Mysql练习题13- 员工薪水中位数

    需求:请编写SQL查询来查找每个公司的薪水中位数.挑战点:你是否可以在不使用任何内置的SQL函数的情况下解决此问题. 展示效果: Id Company Salary 5 A 451 6 A 513 1 ...

  3. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 4丨员工薪水中位数【难度困难】

     活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升. 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远.

  4. LeetCode MySQL解题目录

    已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...

  5. mysql查询中位数(窗口函数的使用)

    mysql查询中位数(leetcode569的延伸) Create table If Not Exists Employee (Id int, Company varchar(255), Salary ...

  6. LeetCode MySQL 1308. 不同性别每日分数总计(累加/变量/窗口函数)

    文章目录 1. 题目 2. 解题 1. 题目 表: Scores +---------------+---------+ | Column Name | Type | +--------------- ...

  7. 台积电全球员工薪酬中位数约46万,CEO约899万;苹果上调日本的 iPhone 售价 ;Vim 9.0 发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  8. Mysql数据库基础第八章:窗口函数和公用表表达式(CTE)

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  9. 台积电全球员工薪酬中位数约46万,CEO约899万;苹果上调日本的 iPhone 售价 ;Vim 9.0 发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

最新文章

  1. 格“物”致知:多模态预训练再次入门
  2. 4 C++对C的加强之namespace命名空间
  3. 发票管理软件_企业为什么需要ERP企业管理软件?
  4. 技术公开课:SQL Server 高可用性解决方案概述(下)
  5. [vSphere培训实录]8G内存笔记本搭建vSphere测试环境
  6. linux g++开启C++11/14支持
  7. 赶在 2018 年前推荐 30 个最火爆的开源库
  8. python面试问题_Python面试问题
  9. Python文件读写基本操作
  10. 程序员面试题精选100题:51-63解题报告
  11. 【VRP问题】基于狼群算法WPA求解带时间窗车辆路径规划问题(VRPTW)matlab源码
  12. 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
  13. 智能营销增益模型(Uplift Modeling)实践整理
  14. 地理空间分析中的常用python操作
  15. BH1750 传感器实战教学 —— 硬件设计篇
  16. jenkins-RestAPI调用出现Error 403 No valid crumb was included in the request解决方法
  17. 车载、行车记录仪产品知识汇集
  18. Android 动态申请应用权限
  19. 【转自Oracle官方博客】一个ASMCA无法识别磁盘设备的问题
  20. pygame 等有缘人接盘

热门文章

  1. Python02期(北京)课程笔记索引
  2. 【Nginx】通过反向代理配置本地图床功能
  3. centos7安装java6_CentOS7.6安装jdk1.8
  4. python 递归函数与循环的区别_提升Python效率之使用循环机制代替递归函数
  5. excel 2007 vba与宏完全剖析_Excel宏VBA小技巧系列 | 分段加合
  6. uboot移植——DM9000的移植
  7. leetcood学习笔记-2-两数相加
  8. Java打war包or打jar包
  9. 《信息检索导论》第七章总结
  10. 字符串转换为整数的源码atoi()