Ermitteln des nᵗʰ-Höchstgehalts aus einer Gehaltstabelle
Frage: Wie können wir das dritte oder nᵗʰ effizient finden Maximalgehalt aus einer Gehaltstabelle mit Spalten für Mitarbeiter-ID, Mitarbeitername und Mitarbeiter Gehalt?
Antwort:
Es gibt mehrere Methoden, dieses Problem anzugehen:
Methode 1: Zeilennummer
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)
Diese Methode verwendet die Funktion ROW_NUMBER(), um jedem Gehalt eine Zeilennummer zuzuweisen. Wir wählen Gehälter auf Zeilennummern aus, die den gewünschten Positionen entsprechen (z. B. 2., 3.).
Methode 2: Unterabfrage
SELECT * FROM Employee Emp1 WHERE (N-1) = ( SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2 WHERE Emp2.Salary > Emp1.Salary )
Diese Methode verwendet a Unterabfrage, um die Anzahl der unterschiedlichen Gehälter zu zählen, die höher sind als das Gehalt jedes Mitarbeiters. Das n-te Höchstgehalt gilt für den Mitarbeiter, dessen Anzahl gleich (n-1) ist.
Methode 3: Top-Schlüsselwort
SELECT TOP 1 salary FROM ( SELECT DISTINCT TOP n salary FROM employee ORDER BY salary DESC ) a ORDER BY salary
Diese Methode verwendet das TOP Schlüsselwort, um die n höchsten Gehälter auszuwählen. Die abschließende ORDER BY-Klausel stellt sicher, dass das wahre n-te Höchstgehalt zurückgegeben wird.
Durch die Verwendung einer dieser Methoden können wir das dritte oder n-te Höchstgehalt effizient aus einer bestimmten Gehaltstabelle ermitteln.
Das obige ist der detaillierte Inhalt vonWie findet man effizient das N-te Höchstgehalt in einer Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!