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.
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.
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 :x)).
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 !
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à :
Code:
SELECT Valeur, Colonne1, Colonne2, ..., ColonneN
FROM ma_requete_qui_fait_plein_de_trucsUne façon de faire ça serait :
Code:
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 :x)).
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 !
Aucun commentaire:
Enregistrer un commentaire