Ако искате да получите „най-евтиния“ служител във всеки отдел, щяхте да имате два избора от главата ми:
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
Или можете да използвате:
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
Второто твърдение работи, като ефективно казва, покажи ми всички служители, където не можете да намерите друг служител в същия отдел с по-ниска заплата.
И в двата случая, ако двама или повече служители имат равни заплати, които са минималните, ще получите и двамата (всички).