Maison >base de données >tutoriel mysql >Comment trouver efficacement le nième salaire maximum dans une base de données ?
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)
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 )
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
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!