Page 1 sur 1

Construire un tableau trié sur le total de chaque ligne

Posté : 09 nov. 2015, 15:22
par Herve_be
Bonjour,
à partir d'un tableau qui contient les statistiques d'utilisation de différents modules d'un logiciel
chaque record contient le nom de l'utilisateur (Userid) et ne nom du Module utilisé (ainsi que d'autres infos qui n'ont pas d'importance ici)
je voudrais construire un tableau qui contient
le Userid
le nombre de records pour chaque module utilisé par ce userid
le total de modules utilisés par ce userid qui doit servir à classer ce tableau

par exemple, table mysql

Utilisateur 1 - module 1
Utilisateur 1 - module 2
Utilisateur 1 - module 2
Utilisateur 1 - module 3
Utilisateur 2 - module 2
Utilisateur 2 - module 3

Résultat attendu

Image

Quelqu'un peut-il m'y aider ?

Re: Construire un tableau trié sur le total de chaque ligne

Posté : 09 nov. 2015, 23:19
par sadeq
Bonjour, il te faut une requête SQL de comptage (count) avec regroupement par UserId et ModuleName.
Une requête comme ça:

Code : Tout sélectionner

SELECT UserId, ModuleName, count(ModuleName) FROM table1 GROUP BY UserId, ModuleName
Voici une simulation du résultat de cette requête sur le site : http://sqlfiddle.com/#!2/e913f6/1

Bonne lecture

Re: Construire un tableau trié sur le total de chaque ligne

Posté : 11 nov. 2015, 12:21
par Herve_be
Merci, c'est déjà très bien mais il manque un élément de l'énoncé :
"le total de modules utilisés par ce userid qui doit servir à classer ce tableau".

Par exemple si le user 1 utilise 5 fois le module 1
et le user 2 3 fois le module 1 et 3 fois le module 2
c'est le user 1 qui va arriver en premier car count(ModuleName) = 5
alors que je voudrais voir le user 2 en premier car il totalise 6 utilisations.