Top n por cento topo n%

Eu tenho o seguinte código.

    SQL> select * from student_gpa;

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

Eu tenho essa função para obter as duas primeiras linhas de pontuação gpa.

SQL> select * from (selecione ssn, gpa de student_gpa order por gpa desc) onde rownum <= 2;

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

Minha pergunta é qual função eu uso para obter os primeiros n% da pontuação GPA. Por exemplo, como tenho dois indivíduos com um GPA de 4, a classificação densa retornaria 11111 ocupando a linha 1 e 22222 ocupando a linha 2. Eu estava realmente procurando uma função que calculasse 5% da pontuação da GPA e o valor retornado seria 11111 e 22222. A função de 5% NÃO DEVE retornar apenas 11111. Mesmo se eu tivesse mais entradas que tivessem gpa de 4, a função 5% ainda retornaria todas as linhas que tivessem gpa de 4.Thanks

questionAnswers(4)

yourAnswerToTheQuestion