Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Temukan gaji tertinggi ke-2 dengan cara terbaik

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)

EID NamaKaryawan Gaji 1 Karyawan-1 20.000 2 Karyawan-2 22.000 3 Karyawan-3 21.000 4 Karyawan-4 19.000 5 Karyawan-5 21.000

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.. 🙂

Jika Anda menyukai postingan ini, jangan lupa berlangganan My Public Notebook untuk hal-hal yang lebih bermanfaat.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menginstal MySQL 8 di Ubuntu

  2. JSON_VALUE() di MySQL

  3. Cara Menampilkan Proses MySQL

  4. Contoh hubungan banyak-ke-banyak

  5. Bagaimana Fungsi REGEXP_LIKE() Bekerja di MySQL