資料庫SQL實戰 --10.獲取所有部門中當前員工薪水最高的相關資訊
阿新 • • 發佈:2018-12-17
題目描述
獲取所有部門中當前員工薪水最高的相關資訊,給出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`));
解題思路
SELECT d.dept_no, s.emp_no, MAX(s.salary) AS salary
FROM salaries AS s INNER JOIN dept_emp As d
ON d.emp_no = s.emp_no
WHERE d.to_date = '9999-01-01' AND s.to_date = '9999-01-01'
GROUP BY d.dept_no
- 用INNER JOIN連線兩張表,限制條件是兩張表的emp_no相同,即d.emp_no = s.emp_no;
- 用GROUP BY d.dept_no將每個部門分為一組,用MAX()函式選取每組中工資最高者;