LeetCode(数据库)- 员工薪水中位数

简介: LeetCode(数据库)- 员工薪水中位数

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:解决方案(2):对于一个奇数 / 偶数长度数组中的中位数,大于这个数的数值个数等于小于这个数的数值个数。最后需要“GROUP BY Company, Salary”是因为子连接时会有左右重复的情况。

 

AC 代码

--解决方案(1)
SELECTid, company, salaryFROM(
SELECTid, company, salary,
ROW_NUMBER() OVER (PARTITIONBYcompanyORDERBYSalaryASC, idASC) ASrow_num,
COUNT(Id) OVER (PARTITIONBYcompany) AScount_idFROMEmployee)
WHERErow_numIN (FLOOR((count_id+1)/2), FLOOR((count_id+2)/2));
--解决方案(2)
SELECTId, Company, SalaryFROMEmployeeWHEREIdin (
SELECTe1.IdFROMEmployeee1JOINEmployeee2ONe1.Company=e2.CompanyGROUPBYe1.IdHAVINGSUM(CASEWHENe1.Salary>=e2.SalaryTHEN1ELSE0END) >=COUNT(*)/2ANDSUM(CASEWHENe1.Salary<=e2.SalaryTHEN1ELSE0END) >=COUNT(*)/2    )
GROUPBYCompany, SalaryORDERBYCompany;
目录
相关文章
|
7月前
|
SQL
leetcode-SQL-1741. 查找每个员工花费的总时间
leetcode-SQL-1741. 查找每个员工花费的总时间
68 0
|
7月前
|
算法 Java
LeetCode寻找两个有序数组的中位数打败100%人
LeetCode寻找两个有序数组的中位数打败100%人
63 0
|
7月前
|
算法
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
66 0
|
7月前
|
SQL
leetcode-SQL-181. 超过经理收入的员工
leetcode-SQL-181. 超过经理收入的员工
47 0
|
6月前
|
SQL 存储 移动开发
力扣第185题:部门工资前三高的员工
力扣第185题:部门工资前三高的员工
|
6月前
|
SQL 算法 大数据
深入解析力扣184题:部门工资最高的员工(子查询与窗口函数详解)
深入解析力扣184题:部门工资最高的员工(子查询与窗口函数详解)
|
7月前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
50 2
|
6月前
|
SQL 算法 大数据
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
深入解析力扣181题:超过经理收入的员工(自连接方法详解及模拟面试问答)
|
6月前
|
SQL 算法 数据挖掘
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
|
7月前
|
算法
【力扣】4. 寻找两个正序数组的中位数
【力扣】4. 寻找两个正序数组的中位数
下一篇
DataWorks