Maison > base de données > tutoriel mysql > Comment trouver efficacement le nième salaire maximum dans une base de données ?

Comment trouver efficacement le nième salaire maximum dans une base de données ?

Barbara Streisand
Libérer: 2024-12-22 10:46:28
original
905 Les gens l'ont consulté

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

Trouver le salaire maximum nᵗʰ à partir d'un tableau des salaires

Question : Comment pouvons-nous trouver efficacement le troisième ou nᵗʰ salaire maximum à partir d'une table de salaires contenant des colonnes pour l'ID de l'employé, le nom de l'employé et l'employé salaire ?

Réponse :

Il existe plusieurs méthodes pour aborder ce problème :

Méthode 1 : Numéro de ligne

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)
Copier après la connexion

Cette méthode utilise la fonction ROW_NUMBER() pour attribuer à chaque salaire un numéro de ligne. Nous sélectionnons les salaires sur les numéros de ligne qui correspondent aux postes souhaités (par exemple, 2e, 3e).

Méthode 2 : Sous-requête

SELECT *
FROM Employee Emp1
WHERE (N-1) = (
               SELECT COUNT(DISTINCT(Emp2.Salary))
               FROM Employee Emp2
               WHERE Emp2.Salary > Emp1.Salary
               )
Copier après la connexion

Cette méthode utilise un sous-requête pour compter le nombre de salaires distincts supérieurs au salaire de chaque employé. Le nième salaire maximum est pour le salarié dont le décompte est égal à (n-1).

Méthode 3 : Top Keyword

SELECT TOP 1 salary
FROM (
      SELECT DISTINCT TOP n salary
      FROM employee
      ORDER BY salary DESC
      ) a
ORDER BY salary
Copier après la connexion

Cette méthode utilise le TOP mot-clé pour sélectionner les n salaires les plus élevés. La clause ORDER BY finale garantit que le véritable nième salaire maximum est restitué.

En utilisant l'une de ces méthodes, nous pouvons identifier efficacement le troisième ou le nième salaire maximum à partir d'une table de salaires donnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal