Top n% Top n%

Ich habe den folgenden Code.

    SQL> select * from student_gpa;

    SSN                    GPA
    --------------- ----------
   22222                    3
   11111                    4
   55555                    3
   33333                    4
   44444                    3

Ich habe diese Funktion, um die ersten beiden gpa-Score-Zeilen zu erhalten.

SQL> select * from (wähle ssn, gpa von student_gpa um von gpa desc) where rownum <= 2;

     SSN                    GPA
    --------------- ----------
    11111                    4
    33333                    4

Meine Frage ist, mit welcher Funktion ich die besten n% der GPA-Punktzahl erhalte. Zum Beispiel, da ich zwei Personen mit einem GPA von 4 habe, würde der dichte Rang 11111 zurückgeben, der die Zeile 1 und 22222 die Zeile 2 belegt. Eigentlich suchte ich nach einer Funktion, die 5% des GPA-Scores berechnet und der zurückgegebene Wert wäre Sowohl 11111 als auch 22222. Die 5% -Funktion SOLLTE NICHT nur 11111 zurückgeben. Selbst wenn ich mehr Einträge mit einem gpa von 4 hätte, würde die 5% -Funktion immer noch alle Zeilen mit einem gpa von 4 zurückgeben. Danke

Antworten auf die Frage(4)

Ihre Antwort auf die Frage