Comment obtenir la deuxième ou la troisième plus grande entrée d'une table
Quelqu'un peut-il me dire comment trouver le N e plus grand d'entrée à partir d'une table dans Oracle?
Comme pour les plus grands, nous pouvons utiliser MAX(nom_colonne) est-il un moyen efficace pour trouver n-ième plus grande aussi?
source d'informationauteur Ninja
Vous devez vous connecter pour publier un commentaire.
Si vous vous attendez à plus d'une ligne à la même valeur
your_sort_column
vous pouvez également utiliser le rang() la fonctionCe mlgh renvoyer plusieurs lignes..
vous pouvez trouver le n-ième plus grande valeur de la colonne à l'aide de la requête suivante
Je pense que le dessous de la requête pour trouver les deuxième record avec PAS EN .
SELECT MAX(
userId
)À PARTIR de la table OÙuserId
not IN (SELECT MAX(userId
)à PARTIR de la table)simple et utile...
Pour obtenir la deuxième plus gros salaire de l'utilisation de ce:
Il travaille pour le deuxième plus haut salaire,
Vous pouvez
ORDER BY column name
et puisLIMIT 1,1
pour obtenir le secondmodifier
Oups, ne pas voir l'Oracle de la balise, désolé.
ORDER BY column name WHERE ROWNUM = 2
devrait mieux fonctionner.Remplacer
&N
avec vous le numéro souhaité. Par exemple,2
vous donnera le deuxième plus gros salaire.Si vous êtes à l'aide de PL/SQL, exécuter l'instruction. Il l'invite pour le N.
Essayez ceci:
Essayer cela,
Vous pouvez essayer ce sql où la fonction Row_number() de l'oracle sql est utilisé
Vous pouvez utiliser
CONNECT BY PRIOR
par:Requête:
DBFiddle Démo
DBFiddle Demo2
EDIT:
Deuxième approche consiste à utiliser
NTH_VALUE
analytique de la fonction:DBFiddle Demo3