2017-09-02 1 views
-1

S'il vous plaît je besoin d'une solution pour un projet, je travaille actuellement surAfficher le nombre différent de remarques différentes pour les utilisateurs distincts

Les utilisateurs se voient attribuer une tâche chaque semaine et ils présentent une réponse. Ils sont marqués Won ou Lost pour cette semaine sur le tableau d'évaluation.

je besoin d'un moyen de voir tous les utilisateurs des tableaux de notation pour voir le nombre de tâches qu'ils ont gagné et côté perdu côte

Voici la COTES Table des 10 entrées pour 5 utilisateurs

**id**    **username**   **date**     **remarks** 

------------------------------------------------------------------------------- 

    1     John    2017-09-02      Won  
    2     Kyle    2017-09-02      Lost  
    3     Danny    2017-09-02      Won  
    4     Mike    2017-09-02      Won  
    5     Alli    2017-09-02      Won  
    6     Kyle    2017-09-09      Lost  
    7     John    2017-09-09      Won  
    8     Danny    2017-09-09      Lost  
    9     Mike    2017-09-09      Lost  
    10     Alli    2017-09-09      Won 

J'ai besoin de tirer le résultat de regarder cette façon:

Username Total_tasks Won  Lost 

john   2   2   0  
kyle   2   0   2 
danny   2   1   1 
mike   2   1   1 
alli   2   2   0 
+2

ce que vous voulez est une simple requête 'group by'. vous devriez jeter un coup d'oeil aux fonctions de MySQL au début. aussi, qu'avez-vous fait jusqu'ici? – Badiparmagi

Répondre

2

Depuis des fonctions d'agrégation, y compris count ignorer les valeurs NULL, une astuce simple que vous pouvez utiliser pour la compter un tas d'expressions de cas:

SELECT username, 
     COUNT(*) AS total_tasks 
     COUNT(CASE remarks WHEN 'Won' THEN 1 END) AS won, 
     COUNT(CASE remarks WHEN 'Lost' THEN 1 END) AS lost 
FROM  mytable 
GROUP BY username 
+0

Nous utilisons généralement SUM pour cela - sinon (avertissements autorisés), vous pouvez aussi bien utiliser 'foo' que 1 – Strawberry

+0

s'il vous plaît votre requête mysql semble correct, le total des tâches fonctionnent. Mais je reçois une erreur pour le Won and Lost dire qu'un Alias ​​a été expédié avant gagné –