Bonjour à tous


j'ai la table "table" suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 -----------------------
|  a   |   b   |    c   |
 -----------------------
|  1   |   1   |    A   |
|  2   |   5   |    C   |
|  3   |   7   |    B   |
|  4   |   2   |    B   |
|  5   |   9   |    A   |
|  6   |   3   |    E   |
|  7   |   6   |    D   |
 -----------------------
je voudrais récupérer les 5 premières lignes, triées par 'a' descendant , et 'b' descendant.

jusque là ça va :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT a,b,c
FROM ma_table
where rownum <= 5
ORDER BY a DESC, b DESC
retourne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 -----------------------
|  a   |   b   |    c   |
 -----------------------
|  7   |   6   |   D    |
|  6   |   3   |   E    |
|  5   |   9   |   A    |
|  4   |   2   |   B    |
|  3   |   7   |   B    |
 -----------------------

Mais maintenant je voudrais que la requête ne retourne que les valeurs de c différentes :
en gros je ne voudrais pas voir la dernière ligne car la valeur b est déjà présente.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 -----------------------
|  a   |   b   |    c   |
 -----------------------
|  7   |   6   |   D    |
|  6   |   3   |   E    |
|  5   |   9   |   A    |
|  4   |   2   |   B    |
|  2   |   5   |   C    |
 -----------------------
j'ai bien tenté un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT a,b,distinct(c)
FROM ma_table
where rownum <= 5
ORDER BY a DESC, b DESC

mais ça ne marche pas.

Quelqu'un aurait une idée ?

merci

PoichOU