Optimisation de recherche de max
Bonjour,
j'aimerais récupérer dans une table le max d'un montant avec des données associées et le tout groupé par "Nom" et "numéro de contrat".
Actuellement j'ai ça
Code:
1 2 3 4 5 6 7 8 9 10 11
|
SELECT C1.NOM,
C1.NUM_CTA,
C1.MNT_FACTURE,
C1.PRENOM,
C1.ADRESSE
FROM CLIENT C1
WHERE C1.MNT_FACTURE = ( SELECT MAX(C2.MNT_FACTURE)
FROM CLIENT C2
WHERE C1.NOM = C2.NOM
AND C1.NUM_CTA = C2.NUM_CTA) |
Le problème c'est que je me fais 2 lectures full sur ma table CLIENT qui fait presque 1 million de lignes, ce qui prend du temps.
Bref j'aimerais faire un truc optimisé mais je ne trouve aucune bonne idée
du style
Code:
1 2 3 4 5 6 7 8
|
SELECT C1.NOM,
C1.NUM_CTA,
MAX(C1.MNT_FACTURE),
C1.PRENOM
C1.ADRESSE
FROM CLIENT C1
GROUP BY C1.NOM, C1.NUM_CTA |
Alors forcément ça ne marche pas le truc au dessus mais c'est comme ça que j'aimerais faire 8-)
Si quelqu'un a une bonne réponse à m'apporter je suis preneur
Merci