J'ai écrit la requête suivante qui joint correctement deux tableaux montrant le nombre de tâches accomplies par les individus de l'équipe et les coûts associés à ces tâches :
SELECT users.id AS user_id, users.name, COALESCE(tasks.cost, 0) AS cost, tasks.assignee, tasks.completed, tasks.completed_by FROM users JOIN tasks ON tasks.assignee = users.id WHERE completed IS NOT NULL AND assignee IS NOT NULL
Cela donne le tableau suivant :
ID utilisateur | Nom | Cessionnaire | Coût | Terminé | Heure de réalisation |
---|---|---|---|---|---|
18 | Mike | 8 | 0,25 | 2022-01-24 19:54:48 | 8 |
13 | Katie | 13 | 0 | 2022-01-24 19:55:18 | 8 |
13 | Katie | 13 | 0 | 2022-01-25 11:49:53 | 8 |
12 | Jim | 12 | 0,5 | 2022-01-25 11:50:02 | 12 |
9 | Oli | 9 | 0,25 | 2022-03-03 02:38:41 | 9 |
Je souhaite maintenant aller plus loin et retrouver le coût total regroupé par nom et mois réalisé. Cependant, je n'arrive pas à comprendre la syntaxe du GROUP BY après les clauses select et WHERE actuelles. En fin de compte, je veux que la requête renvoie quelque chose comme ceci :
Nom | cost_sum | mois |
---|---|---|
Mike | 62 | Janvier |
Katie | 20 | Janvier |
Jim | 15 | Janvier |
Oli | 45 | Janvier |
Mike | 17 | Février |
J'ai essayé diverses combinaisons et clauses GROUP BY imbriquées, mais je n'arrive pas à obtenir les résultats souhaités. Tous les indicateurs seraient grandement appréciés.
Ça ressemble à ça :
Concatène
users
加入一个查询,该查询聚合在tasks
et renvoie le coût mensuel total pour une année spécifique :Pas besoin de vérifier
completed
是null
还是assignee
是null
,因为null
s sont filtrés ici :Ici :