Jika Anda ingin mendapatkan karyawan "termurah" di setiap departemen, Anda memiliki dua pilihan di atas kepala saya:
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
Atau Anda dapat menggunakan:
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
Pernyataan kedua berfungsi dengan efektif mengatakan, tunjukkan kepada saya semua karyawan di mana Anda tidak dapat menemukan karyawan lain di departemen yang sama dengan gaji lebih rendah.
Dalam kedua kasus tersebut, jika dua atau lebih karyawan memiliki gaji minimum yang sama, Anda akan mendapatkan keduanya (semua).