1 张三 院校 11000 2 李四 教研 25000 3 王五 院校 15000 4 赵六 教研 22000 5 田七 就业 18000 6 周八 院校 19000 请通过SQL分析以上数据,求每个部门中薪资最高的第一名
时间: 2024-01-05 10:02:57 浏览: 110
学科、姓名、分数。 分别计算每门学科分数最高的前三名,并显示名次。写入MySQL中。
可以使用窗口函数和子查询来实现此查询:
```sql
SELECT id, name, department, salary
FROM (
SELECT id, name, department, salary,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS row_num
FROM employee
) AS sub
WHERE row_num = 1;
```
首先,窗口函数`ROW_NUMBER()`按照部门对薪资进行降序排序,并为每个行分配一个行号。然后,子查询过滤出每个部门中行号为1的记录,即薪资最高的第一名。最后,外部查询选取子查询中的id、name、department和salary字段作为结果集。
阅读全文