我的一位同事正在研究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