Avoir le max d'un resultat sql
Fermé
blacksadangel
Messages postés
21
Date d'inscription
vendredi 29 mai 2009
Statut
Membre
Dernière intervention
7 août 2014
-
2 juil. 2012 à 16:20
Utilisateur anonyme - 9 juil. 2012 à 20:27
Utilisateur anonyme - 9 juil. 2012 à 20:27
A voir également:
- Avoir le max d'un resultat sql
- I14 pro max - Guide
- Lexer resultat - Télécharger - Sport
- Évariste souhaite télécharger le logiciel mozilla firefox depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. ✓ - Forum Microsoft Edge / Internet Explorer
- Évariste souhaite télécharger le logiciel inkscape depuis le site de son éditeur. sélectionnez le résultat de recherche sur lequel il doit cliquer. - Forum Bureautique
- Max tv gratuit - Télécharger - Télévision
4 réponses
Utilisateur anonyme
2 juil. 2012 à 17:04
2 juil. 2012 à 17:04
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)
blacksadangel
Messages postés
21
Date d'inscription
vendredi 29 mai 2009
Statut
Membre
Dernière intervention
7 août 2014
2 juil. 2012 à 18:36
2 juil. 2012 à 18:36
ça bien marché !! merci infiniment le père :)
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
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
33
Modifié par malaik5 le 9/07/2012 à 17:37
Modifié par malaik5 le 9/07/2012 à 17:37
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.