LeetCode(数据库)- 将工资相同的雇员分组

Posted 程序员牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(数据库)- 将工资相同的雇员分组相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码

-- 解决方案(1)
select A.employee_id,
       A.name,
       A.salary,
       dense_rank() over(order by A.salary) team_id
  from (select a.*, COUNT(1) over(partition by a.salary) cn from Employees a) A
 WHERE A.cn > 1
 order by team_id,employee_id

-- 解决方案(2)
WITH t AS(SELECT 1 no, employee_id, name, salary
FROM Employees
WHERE employee_id NOT IN (SELECT employee_id FROM Employees GROUP BY salary HAVING COUNT(*) = 1))

SELECT employee_id, name, salary, DENSE_RANK() OVER(PARTITION BY no ORDER BY salary) team_id
FROM t

以上是关于LeetCode(数据库)- 将工资相同的雇员分组的主要内容,如果未能解决你的问题,请参考以下文章

分组案列总结:

mongoDB MapReduce

数据库 SQL语句

洛谷 P1407 工资

如何用oracle查询出部门名称,部门员工数,部门平均工资,部门最低工资雇员的姓名,及工资等级

如何找出工资前三名的雇员