Nếu bạn muốn có được nhân viên "rẻ nhất" trong mỗi bộ phận, bạn sẽ có hai lựa chọn nằm ngoài đầu của tôi:
SELECT
E.* -- Don't actually use *, list out all of your columns
FROM
Employees E
INNER JOIN
(
SELECT
department,
MIN(salary) AS min_salary
FROM
Employees
GROUP BY
department
) AS SQ ON
SQ.department = E.department AND
SQ.min_salary = E.salary
Hoặc bạn có thể sử dụng:
SELECT
E.*
FROM
Employees E1
LEFT OUTER JOIN Employees E2 ON
E2.department = E1.department AND
E2.salary < E1.salary
WHERE
E2.employee_id IS NULL -- You can use any NOT NULL column here
Câu lệnh thứ hai hoạt động hiệu quả bằng cách nói rằng, hãy chỉ cho tôi tất cả nhân viên nơi bạn không thể tìm thấy một nhân viên nào khác trong cùng bộ phận với mức lương thấp hơn.
Trong cả hai trường hợp, nếu hai hoặc nhiều nhân viên có mức lương bằng nhau và mức lương tối thiểu thì bạn sẽ nhận được cả hai (tất cả).