原题描述
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id 。
1 | +----+-------+--------+--------------+ |
Department 表包含公司所有部门的信息。
1 | +----+----------+ |
编写一个 SQL 查询,找出每个部门工资前三高的员工。例如,根据上述给定的表格,查询结果应返回:
1 | +------------+----------+--------+ |
这种题总是有一点意外情况,在测试用例中会出现,同一个部门中工资相同的情况,所以,说是前三高但并不代表结果集中每个部门只有三个人……
解答
1 | SELECT d.Name Department, t.Name Employee, Salary |
这大概是上一个题的个升级版吧,所以就按照上题的思路做了,显得格外复杂有没有,看懂跟会写还是有差别的……
More
再看两种大佬写的
1 | SELECT P2.Name AS Department,P3.Name AS Employee,P3.Salary AS Salary |
1 | SELECT t.NAME Department, d.NAME Employee , t.Salary Salary |