12、获取所有部门中当前员工薪水最高的相关信息

1、题目描述:

获取所有部门中当前员工薪水最高的相关信息,给出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`));

输入描述:

输出描述:

dept_no emp_no salary
d001 10001 88958
d002 10006 43311
d003 10005 94692
d004 10004 74057
d005 10007 88070
d006 10009 95409

2、代码:主要考察group by和筛选条件的理解,若分组之前用的条件用 where 过滤,分组之后用的条件用 having 连接,例如求所有的工资和大于一百万的部门。

select d.dept_no,d.emp_no,max(s.salary) as salary
from salaries s join dept_emp d on d.emp_no=s.emp_no
where s.to_date='9999-01-01' and d.to_date='9999-01-01'
group by d.dept_no ;

猜你喜欢

转载自www.cnblogs.com/guoyu1/p/12242221.html