LeetCode(数据库)- 部门工资最高的员工

Posted Lux_Sun

tags:

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

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:解决方案(1) 和 解决方案(2) 思路都是差不多的:先子查询查出每个部门的最高薪资,然后做下表关联拼接即可~区别无非在于子查询的关联上,前者用的是笛卡尔积,后者用的是 IN 语法(没想到 IN 还可以多个值同时去对齐吧)

 

AC 代码

-- 解决方案(1)
SELECT d.Name Department, e.Name Employee, e.Salary
FROM Employee e
JOIN Department d
ON e.DepartmentId = d.Id,
(SELECT MAX(Salary) Salary, DepartmentId
FROM Employee 
GROUP BY DepartmentId) rs
WHERE rs.Salary = e.Salary AND rs.DepartmentId = e.DepartmentId

-- 解决方案(2)
SELECT
    Department.name AS 'Department',
    Employee.name AS 'Employee',
    Salary
FROM
    Employee
        JOIN
    Department ON Employee.DepartmentId = Department.Id
WHERE
    (Employee.DepartmentId , Salary) IN
    (   SELECT
            DepartmentId, MAX(Salary)
        FROM
            Employee
        GROUP BY DepartmentId
	)
;

以上是关于LeetCode(数据库)- 部门工资最高的员工的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-SQL每日一练—184. 部门工资最高的员工

SQL练习——查询部门工资最高的员工

LeetCode(数据库)- 部门工资前三高的所有员工

力扣——部门工资最高的员工(数据库的题

2022-12-03:部门工资最高的员工。以下数据Max 和 Jim 在 IT 部门的工资都是最高的,Henry 在销售部的工资最高。sql语句如何写? 输出结果如下: department emp

部门工资最高的员工