Utilisez les fonctions analytiques SQL pour trouver le deuxième salaire le plus élevé
Comment récupérer facilement le deuxième salaire le plus élevé de la table de la base de données des employés ?
Réponse :
Les fonctions analytiques d'Oracle apportent une solution à cette tâche. La requête SQL suivante utilise ces fonctions pour identifier le deuxième salaire le plus élevé :
<code class="language-sql">SELECT * FROM ( SELECT sal, DENSE_RANK() OVER (ORDER BY sal DESC) AS rnk FROM ( SELECT DISTINCT sal FROM emp ) ) WHERE rnk = 2</code>
Cette requête utilise la fonction DENSE_RANK() pour attribuer des classements consécutifs aux salaires par ordre décroissant. La clause WHERE filtre ensuite les résultats pour récupérer la ligne avec rnk = 2, qui représente le deuxième salaire le plus élevé.
Autres notes :
Lors de la sélection d'autres informations, le choix de la fonction d'analyse affectera les résultats. En cas d'égalité, RANK() ignorera le classement et ROW_NUMBER() renverra l'employé suivant. Dans ce cas, DENSE_RANK() est généralement préféré.
Le choix de la fonction d'analyse dépend en fin de compte des besoins spécifiques de l'entreprise et de la manière de gérer les situations d'égalité.
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!