【MySQL牛客】12.获取所有部门中当前员工当前薪水最高的相关信息

2022-07-31,,,,

问题描述

获取所有部门中当前(dept_emp.to_date = ‘9999-01-01’)员工当前(salaries.to_date=‘9999-01-01’)薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary

CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

这题太坑了,看需求都没看明白,当然也可能是因为我太菜了。
题意:
获取每个部门中员工薪水最高的员工的信息。
第一,每个部门,所以要分组。
第二,3个字段来自2个表,所以要联结。
第三,都是当前,这是on的条件之一。
第四,联结表需要emp_no相等,这是on的条件之二。
第五,取最大的薪水,要用max。
第六,这题有坑,只写能通过牛客的代码。真正正确的代码要review一下。

select de.dept_no, de.emp_no, max(salary)
from dept_emp de inner join salaries sa
on de.to_date='9999-01-01' and sa.to_date='9999-01-01'
and de.emp_no=sa.emp_no
group by de.dept_no;

本文地址:https://blog.csdn.net/weixin_41687289/article/details/107674478

《【MySQL牛客】12.获取所有部门中当前员工当前薪水最高的相关信息.doc》

下载本文的Word格式文档,以方便收藏与打印。