Mit Rang wählen Sie top-10-Tupel in Oracle SQL
Habe ich die Beziehung Lehrer(ID, name, dept name, Gehalt).
Die Frage, die in unseren Auftrag fordert uns auf: Verwenden der Rang-Funktion in SQL zu schreiben, die eine Abfrage zu nden, die id und den Namen jener Lehrer in die top 10 hoch bezahlte.
Ich bin in der Lage, um die Rangfolge der Dozenten durch die Verwendung select id, name, rank() over(order by(salary) desc) as sal
from instructor order by sal
Was ist mein Nächster Schritt, greift der top-10-Ausbilder? Danke.
InformationsquelleAutor Doug | 2010-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Lösung Nähe ist, die Antwort aber im Allgemeinen ist es besser, verwenden Sie den Wert, gegeben durch die RANG () - Funktion:
Das problem mit rownum ist, dass es willkürlich kürzt das Ergebnis festgelegt. Wenn wir ein Band für den zehnten Platz, ist es normalerweise wichtig, zu wissen, diese Tatsache. Mit ROWNUM gibt nur einen zufälligen Datensatz statt.
Manchmal ROWNUM - oder die Analyse ROW_NUMBER() - wird richtig sein. Es hängt von der genauen geschäftlichen Anforderungen.
DENSE_RANK()
.InformationsquelleAutor APC
Ich dachte nur es sich eigentlich mit rownum...
Hoffentlich hilft jemand in der Zukunft!
InformationsquelleAutor Doug