我編寫了以下查詢,該查詢正確連接了兩個表,該表顯示團隊中個人完成的任務數量以及這些任務的相關成本:
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
這提供了下表:
使用者 ID | 姓名 | 受讓人 | 成本 | 已完成 | 完成時間 |
---|---|---|---|---|---|
18 | 麥克 | 8 | 0.25 | 2022-01-24 19:54:48 | 8 |
13 | 凱蒂 | 13 | 0 | 2022-01-24 19:55:18 | 8 |
13 | 凱蒂 | 13 | 0 | 2022-01-25 11:49:53 | 8 |
12 | 吉姆 | 12 | 0.5 | 2022-01-25 11:50:02 | 12 |
9 | 奧利 | 9 | 0.25 | 2022-03-03 02:38:41 | 9 |
我現在想進一步查找按名稱和完成月份分組的成本總和。但是,我無法在目前的 select 和 WHERE 子句之後計算出 GROUP BY 的語法。最終,我希望查詢返回如下內容:
姓名 | cost_sum | 月 |
---|---|---|
麥克 | 62 | 一月 |
凱蒂 | 20 | 一月 |
吉姆 | 15 | 一月 |
奧利 | 45 | 一月 |
麥克 | 17 | 二月 |
我嘗試了各種組合和嵌套 GROUP BY 子句,但似乎無法獲得所需的結果。任何指示將不勝感激。
大概是這樣的:
將
users
加入查詢,聚合在tasks
中並傳回特定年份每月的總成本:不需要檢查
completed
是null
還是assignee
是null
,因為null
s在這裡被過濾掉了:這裡: