Mencari Gaji Maksimum nᵗʰ dari Jadual Gaji
Soalan: Bagaimana kita boleh mencari yang ketiga atau nᵗʰ dengan cekap gaji maksimum daripada jadual gaji yang mengandungi lajur untuk ID pekerja, nama pekerja dan pekerja gaji?
Jawapan:
Terdapat beberapa kaedah untuk mendekati masalah ini:
Kaedah 1: Nombor Baris
SELECT Salary, EmpName FROM ( SELECT Salary, EmpName, ROW_NUMBER() OVER(ORDER BY Salary) As RowNum FROM EMPLOYEE ) As A WHERE A.RowNum IN (2,3)
Kaedah ini menggunakan fungsi ROW_NUMBER() untuk menetapkan setiap gaji satu nombor baris. Kami memilih gaji pada nombor baris yang sepadan dengan jawatan yang diingini (cth., ke-2, ke-3).
Kaedah 2: Sub Pertanyaan
SELECT * FROM Employee Emp1 WHERE (N-1) = ( SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary )
Kaedah ini menggunakan subquery untuk mengira bilangan gaji berbeza yang lebih besar daripada gaji setiap pekerja. Gaji maksima ke-n adalah untuk pekerja yang kiraan bersamaan dengan (n-1).
Kaedah 3: Kata Kunci Teratas
SELECT TOP 1 salary FROM ( SELECT DISTINCT TOP n salary FROM employee ORDER BY salary DESC ) a ORDER BY salary
Kaedah ini menggunakan TOP kata kunci untuk memilih n gaji tertinggi. Klausa ORDER BY muktamad memastikan gaji maksimum ke-n sebenar dikembalikan.
Dengan menggunakan mana-mana kaedah ini, kami boleh mengenal pasti gaji maksimum ketiga atau ke-n dengan cekap daripada jadual gaji yang diberikan.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Gaji Maksimum Ke-N dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!