Bonjour à tous,
J'ai une requête assez complexe (ci-après nommée ma_requete_qui_fait_plein_de_trucs qui rapatrie tout un tas de données et dont je souhaiterais ne récupérer que les lignes qui ont la valeur maximale d'une certaine colonne. C'est-à-dire, j'ai des données de ce genre là :
... et je voudrais ne garder que les lignes qui ont dans la colonne Valeur la valeur maximale de toute la colonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Valeur, Colonne1, Colonne2, ..., ColonneN FROM ma_requete_qui_fait_plein_de_trucs
Une façon de faire ça serait :
Mais cette méthode implique d'exécuter deux fois ma_requete_qui_fait_plein_de_trucs, ce qui n'est ni très économe, ni très ergonomique dans le code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT Valeur, Colonne1, Colonne2, ..., ColonneN FROM ma_requete_qui_fait_plein_de_trucs WHERE Valeur = (SELECT MAX(Valeur) FROM ma_requete_qui_fait_plein_de_trucs)
N'ayant que des droits très limités sur la base de données, je ne peux pas créer de vue ou ce genre de chose (ou plus exactement je peux en créer, mais on nous l'a interdit... (fichus décideurs)).
J'ai du mal à croire que cette sélection de ligne ne soit pas possible par le biais d'une astuce SQL, mais je n'arrive pas à trouver comment faire.
La colonne Valeur contient des entiers positifs. La base de données est gérée par Oracle (je ne saurais pas dire quelle version).
Merci par avance de votre aide !
EDIT : plus d'explications du problème dans mon message suivant
Partager