Avoir le max d'un resultat sql
blacksadangel
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour tout lmonde
sous Mysql,j'ai réalisé la requête suivante qui permet d'avoir la somme de consommation de chaque utilisateur
SELECT clid, sum( duration )
FROM cdr
GROUP BY clid
ca me donne :
clid sum( duration )
"user1" <100> 30
"user2" <101> 709
"user3" <200> 2877
"user4" <106> 10769
"user5" <107> 3104
en fait,j'ai besoin de la requête sql qui permet d'avoir le max du résultat précendante (qui sera bien sur le "user4")
Merci infiniment pour votre aide
:)
sous Mysql,j'ai réalisé la requête suivante qui permet d'avoir la somme de consommation de chaque utilisateur
SELECT clid, sum( duration )
FROM cdr
GROUP BY clid
ca me donne :
clid sum( duration )
"user1" <100> 30
"user2" <101> 709
"user3" <200> 2877
"user4" <106> 10769
"user5" <107> 3104
en fait,j'ai besoin de la requête sql qui permet d'avoir le max du résultat précendante (qui sera bien sur le "user4")
Merci infiniment pour votre aide
:)
A voir également:
- Avoir le max d'un resultat sql
- Resultat foot - Télécharger - Vie quotidienne
- Driver max - Télécharger - Pilotes & Matériel
- I14 pro max - Accueil - Guide téléphones
- Lexer resultat - Télécharger - Sport
- Max ou netflix - Accueil - Streaming
4 réponses
Bonjour
J'ai une solution pas jolie-jolie, mais qui devrait marcher :
J'ai une solution pas jolie-jolie, mais qui devrait marcher :
SELECT t2.clid, t2.dduration FROM (SELECT clid, sum(duration ) dduration FROM cdr GROUP BY clid) t2 WHERE t2.dduration = (select MAX(dduration ) from (SELECT clid, sum(duration ) dduration FROM cdr GROUP BY clid) t)
SELECT clid, sum( duration ) AS sum_duration
FROM cdr
GROUP BY clid
ORDER BY sum_duration DESC
LIMIT 1
FROM cdr
GROUP BY clid
ORDER BY sum_duration DESC
LIMIT 1
Bonjour,
@Le père, dans ta solution il y a des trucs redondons,
je pense que ça, ça peut marcher sans compliquer :
(j'ai testé la solution), parce que cette solution te permet de gagner en jointure ce qui est consommateur en cpu pour l'exécution de la requete
SELECT t2.clid, max(t2.dduration) FROM (SELECT clid, sum(duration ) dduration
FROM client GROUP BY clid) t2
Bon courage
@Le père, dans ta solution il y a des trucs redondons,
je pense que ça, ça peut marcher sans compliquer :
(j'ai testé la solution), parce que cette solution te permet de gagner en jointure ce qui est consommateur en cpu pour l'exécution de la requete
SELECT t2.clid, max(t2.dduration) FROM (SELECT clid, sum(duration ) dduration
FROM client GROUP BY clid) t2
Bon courage
Je me doute bien que ma requête est redondante ; j'ai d'ailleurs bien dit qu'elle n'était pas jolie-jolie.
Mais la tienne présente deux inconvénients :
Elle ne donne qu'une seule ligne de résultats, même s'il y a des ex-aequo
Le t2.clid N'EST PAS sauf hasard heureux, celui associé à max(t2.dduration)
En fait, le t2.clid sorti semble être simplement le premier de la table, même si le max est correct, lui.
Mais la tienne présente deux inconvénients :
Elle ne donne qu'une seule ligne de résultats, même s'il y a des ex-aequo
Le t2.clid N'EST PAS sauf hasard heureux, celui associé à max(t2.dduration)
En fait, le t2.clid sorti semble être simplement le premier de la table, même si le max est correct, lui.