Pertanyaan ini paling sering ditanyakan pada saat wawancara dari kandidat yang lebih baru atau pengalaman 1 tahun. Bahkan pertanyaan ini mungkin ditanyakan kepada saya ketika saya masih pemula di bidang pengembangan web.
Jadi saya akan menunjukkan beberapa cara yang mungkin untuk menemukan gaji tertinggi ke-2 atau ke-n.
Untuk Kedaluwarsa:Tabel Karyawan(ET)
1:- Bagaimana menemukan gaji tertinggi ke-n tanpa syarat
Dalam hal ini Anda dapat menggunakan metode limit dan max yang sangat dasar dari sql
SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT n-1,1
Dimana n adalah posisi yang anda cari
Jika n=2 query akan menjadi
SELECT DISTINCT(state_id) FROM crm_cities ORDER BY state_id DESC LIMIT 1,1
Outputnya adalah:21.000
2:- Bagaimana mencari semua ke-n gaji tertinggi dimana syaratnya adalah Anda harus menemukan semua karyawan dengan bayaran tertinggi ke-2.
Dalam hal ini Anda dapat menggunakan fitur sub query dari sql.
SELECT Salary FROM ET WHERE Salary = (SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT n-1,1)
Dimana n adalah posisi yang anda cari
Jika n=2 query akan menjadi
SELECT Salary FROM ET WHERE Salary = (SELECT DISTINCT(Salary) FROM ET ORDER BY Salary DESC LIMIT 1,1)
Outputnya adalah:21.000 , 21.000
3:- Bagaimana menemukan gaji tertinggi ke-2 tanpa menggunakan kondisi LIMIT.
Dalam hal ini Anda dapat menggunakan kondisi NOT IN di sql
SELECT MAX(Salary) FROM ET WHERE Salary NOT IN (SELECT MAX(Salary) FROM ET)
Outputnya adalah:21.000
4:- Cara mencari gaji tertinggi ke-2 tanpa menggunakan LIMIT dan Sub-Query
Dalam hal ini Anda dapat menggunakan metode self-join
SELECT MAX( E1.Salary ) FROM ET E1, ET E2 WHERE E1.Salary < E2.Salary Output will be: 21,000
Semoga ini akan membantu Anda menemukan jawaban yang tepat sesuai kebutuhan Anda.. 🙂