我的一位同事正在研究SQL查詢。經過多次連接(工人帳戶任務),她得到了一些信息排序是這樣的:如何使用多個COUNT爲不同的GROUP BY編寫SQL查詢?
Worker Account Date Task_completed
Bob Smith 12345 01/01/2010 Received
Bob Smith 12345 01/01/2010 Received
Bob Smith 12345 01/01/2010 Processed
Sue Jones 23456 01/01/2010 Received
...
最終自己想要的東西是這樣的 - 每個日期,每個帳戶,許多任務是如何做到每個工人完成該帳戶?
Worker Account Date Received_count Processed_count
Bob Smith 12345 01/01/2010 2 1
...還有其他幾種狀態可以計數。
獲取這些計數的一個是很容易的:
SELECT
COUNT(Task_completed)
FROM
(the subselect)
WHERE
Task_completed = 'Received'
GROUP BY
worker, account, date
但我不知道,讓他們所有的最佳途徑。 本質上我們想要多個COUNT
s使用不同的GROUP BY
s。我能找到的最好的東西是複製和粘貼子查詢幾次,將WHERE
更改爲「已處理」等,並將所有這些加在一起,從每一箇中選擇計數。
有沒有更明顯的方法來做到這一點?
有問題!爲什麼在你的例子中說在Processed_count = 1? – Longha 2011-04-01 16:15:33