Plusieurs count

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Plusieurs count

Re: Plusieurs count

par zeus » 02 janv. 2011, 12:35

Donne nous le schéma SQL de ta table (commande CREATE TABLE) ainsi qu'un petit jeu de test pour qu'on puisse essayer

Re: Plusieurs count

par energie13 » 02 janv. 2011, 01:13

Personne ? si qqn avait une piste ca serait vraiment cool :(

Re: Plusieurs count

par xTG » 31 déc. 2010, 11:47

Pas forcement bizarre.
Tu as des utilisateurs provenant de différents services. ^^
Donc (userLogin, userService, userSall), soit 3 n-uplets (? = on se fiche de la valeur) :
1, 1, ?
2, 1, ?
3, 2, ?

renverra 2 n-uplets :
2
1

Je vois le soucis, mais mes connaissances en SQL ne me permettent pas de t'aider... :/
Si je trouve j'apporterai une réponse mais j'espère que quelqu'un pourra t'éclairer avant.

Re: Plusieurs count

par energie13 » 31 déc. 2010, 11:31

Merci pour la réponse :)
J'ai l'erreur suivante :

Code : Tout sélectionner

#1242 - Subquery returns more than 1 row
Il y a plusieurs lignes de résultats je ne comprends pas d'ou vient l'erreur ou ce qui cloche. Je continue a chercher :s

Re: Plusieurs count

par xTG » 31 déc. 2010, 10:31

Ce n'est pas une union mais des sous-requêtes qu'il te faut. :)
(
SELECT userLogin, userService, actionSall, (SELECT COUNT( * ) FROM `log` WHERE actionSall = 'X' GROUP BY userLogin, userService) AS TotalX, (SELECT COUNT( * ) FROM `log` WHERE actionSall = 'Y' GROUP BY userLogin, userService) AS TotalY
FROM `log`
)
Essayes ceci, je n'ai aucunement testé cependant. :)

Plusieurs count

par energie13 » 31 déc. 2010, 10:20

Bonjour,
J'ai la table logs suivante :
idLog userLogin userAgent userService userProfile actionStatus actionSall

Je souhaite formater les résultats suivants :
____________________________________________________________________________________________
userLogin|userService|actionSall |Total (requete actionSall = X)|Total (requete actionSall = Y)|

et de les grouper par login (userLogin) et service (userService)

J'essaie avec la requête suivante :

Code : Tout sélectionner

( SELECT userLogin, userService, actionSall, COUNT( * ) AS TotalX FROM `log` WHERE actionSall = 'X' GROUP BY userLogin, userService ) UNION ( SELECT userLogin, userService, actionSall, COUNT( * ) AS TotalY FROM `log` WHERE actionSall = 'Y' GROUP BY userLogin, userService )
et j'obtiens le résultat suivant :
userLogin | userService | actionSall | TotalVoipDebug
dont actionSall = X et Y mais pas en colonne comme je le souhaitais.

Ca fait qqes jours que je galère si qqn avait une astuce ou une idée ca serait top

Je vous remercie par avance.