Top n percent 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 top-zwei der gpa-score Zeilen.
SQL - > select * from (select ssn, gpa von student_gpa, um durch die gpa desc) where rownum <= 2;
SSN GPA
--------------- ----------
11111 4
33333 4
Meine Frage ist, welche Funktion muss ich benutzen, um die obersten n% der GPA-score. Zum Beispiel, Da habe ich zwei Personen mit einem Notendurchschnitt von 4, dicht Rang zurückkehren würde, 11111 besetzen Zeile 1 und 22222 besetzen Zeile 2. Ich war eigentlich auf der Suche für eine Funktion sagen, die berechnet 5% der GPA-score und der zurückgegebene Wert wäre sowohl 11111 und 22222. Die 5%, SOLLTE die Funktion NICHT zurück, 11111 nur. Auch wenn ich mehr Einträge hatten Notenschnitt von 4, der 5% funktioniert, würden immer noch alle Zeilen, die hatte gpa von 4.Dank
- :der Eintrag in top-Mittel? wie wollen Sie das Ergebnis bitte Bearbeiten Sie die Frage ,ich glaube, ich habe deine Frage missverstanden haben ,überprüfen Sie bitte meine Antwort
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, diese:
Ersten 30 Prozent mit 2 wählt:
Lösung mit 4 wählt und rownum (sehr hässlich):
In Oracle, Top-N-Abfragen sind in der Regel durchgeführt unter Verwendung von analytischen Funktionen, wie NTILE, also in deinem Fall: