MySQL是一種十分流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),廣泛應(yīng)用于各種領(lǐng)域。在這篇文章中,我們將探討如何使用MySQL查詢每個部門前三高的員工。
SELECT
d.dept_name,
e.emp_name,
e.salary
FROM
departments d
INNER JOIN employees e ON d.dept_id = e.dept_id
INNER JOIN (
SELECT
dept_id,
salary,
ROW_NUMBER() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rank
FROM
employees
) e_rank ON e.dept_id = e_rank.dept_id AND e.salary = e_rank.salary
WHERE
rank <= 3;
上面的代碼使用了INNER JOIN和子查詢來完成任務(wù)。首先,通過JOIN將departments和employees表連接起來。接著,使用子查詢和ROW_NUMBER函數(shù)根據(jù)每個部門內(nèi)員工的工資高低排名。
最后,在WHERE子句中篩選出排名前三的員工。這樣,每個部門的前三高工資的員工就被找到了。