Heim > Datenbank > MySQL-Tutorial > Wie findet man effizient das N-te Höchstgehalt in einer Datenbank?

Wie findet man effizient das N-te Höchstgehalt in einer Datenbank?

Barbara Streisand
Freigeben: 2024-12-22 10:46:28
Original
875 Leute haben es durchsucht

How to Efficiently Find the Nth Maximum Salary in a Database?

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)
Nach dem Login kopieren

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
               )
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage