[résolu][MySQL] Sélection groupée et comptage
7 messages
• Page 1 sur 1
-

erestrebian - WRInaute occasionnel

- Messages: 460
- Inscription: 15 Juin 2007
[résolu][MySQL] Sélection groupée et comptage
Bonjour,
Je voudrais savoir s'il est possible de compter seulement suivant l'utilisateur.
Voici la table :
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!
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 impliqué

- Messages: 911
- Inscription: 5 Aoû 2003
- 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 occasionnel

- Messages: 460
- Inscription: 15 Juin 2007
Merci beaucoup, c'est exactement ça que je voulais faire...
-

YoyoS - WRInaute accro

- Messages: 3827
- Inscription: 14 Sep 2006
Mon pti grin de sel
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.
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 occasionnel

- Messages: 460
- Inscription: 15 Juin 2007
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

-

julienr - WRInaute impliqué

- Messages: 911
- Inscription: 5 Aoû 2003
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
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- MySql selection sans doublon (select distinct)
- Sélection dans un textarea [Résolu]
- Probleme de selection SQL (PB résolu par BISCUIT)
- Sandbox ... pénalisation groupée par critères
- [Résolu] Requête MySQL
- [Résolu]- Requête MySql
- [résolu] mysql et regexp
- [Résolu] RAND et Mysql
- [résolu] mysql à distance
- [resolu]Mysql - optimisation
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
