[résolu][MySQL] Sélection groupée et comptage

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

[résolu][MySQL] Sélection groupée et comptage

Message le Lun Sep 22, 2008 8:58

Bonjour,

Je voudrais savoir s'il est possible de compter seulement suivant l'utilisateur.

Voici la table :
Code: Tout sélectionner
CREATE TABLE utilis_niveau (
  num_utilisateur int(6) NOT NULL,
  num_niveau smallint(3) NOT NULL,
  nb_enigmes_rep int(5) NOT NULL,
  PRIMARY KEY  (num_utilisateur,num_niveau)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


Code: Tout sélectionner
SELECT num_utilisateur, (num_niveau*nb_enigmes_rep) as pts FROM utilis_niveau ORDER BY (num_niveau*nb_enigmes_rep) DESC


Je voudrais améliorer cette requête afin que pts soit l'ensemble des points de l'utilisateur. J'ai essayé le group by num_utilisateur mais ça ne me donne que le premier niveau.

Exemple de ce que je veux :

utilis |pts
1 |120
5 |118
2 |110
...

ce que j'ai pour l'instant parce que le groupement se fait par utilisateur ET par niveau:

utilis |pts
1 |60
1 |40
1 |20
5 |70
5 |48
2 |50
2 |60
...

Merci par avance de vos lumières!
Dernière édition par erestrebian le Lun Sep 22, 2008 9:55, édité 1 fois.


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Lun Sep 22, 2008 9:38

Code: Tout sélectionner
SELECT num_utilisateur, sum(num_niveau*nb_enigmes_rep) as pts FROM utilis_niveau GROUP BY num_utilisateur ORDER BY sum(num_niveau*nb_enigmes_rep) DESC

?


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

Message le Lun Sep 22, 2008 9:55

Merci beaucoup, c'est exactement ça que je voulais faire...


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Lun Sep 22, 2008 9:56

de rien :)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Sep 22, 2008 17:02

Mon pti grin de sel :mrgreen:

Je me demande si avec un ORDER BY pts DESC à la place de ORDER BY sum(num_niveau*nb_enigmes_rep) DESC , ça lui éviterait pas de faire 2x le même calcul ? Je suis pas sure du tout mais ça semble plus logique en tout cas.


erestrebian
WRInaute impliqué
WRInaute impliqué
 
Messages: 394
Inscription: Ven Juin 15, 2007 12:55

Message le Jeu Sep 25, 2008 8:40

Bien vu! Je sais pas si ça joue beaucoup et je n'ai pas trop de visites pour l'instant mais comme tout le monde, j'espère en avoir des millions d'ici la fin de l'année :lol: :lol: :lol:


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Jeu Sep 25, 2008 8:49

YoyoS a écrit:Je me demande si avec un ORDER BY pts DESC à la place de ORDER BY sum(num_niveau*nb_enigmes_rep) DESC , ça lui éviterait pas de faire 2x le même calcul ? Je suis pas sure du tout mais ça semble plus logique en tout cas.

logique pas sûr, moins source d'erreur oui sans aucun doute :-)
en tout cas le explain donne le même plan d'exécution, mysql c'est pas access version 1.0 ;-)


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités