gpt4 book ai didi

mysql - 如何为不同的 GROUP BY 编写具有多个 COUNT 的 SQL 查询?

转载 作者:行者123 更新时间:2023-11-29 01:33:04 24 4
gpt4 key购买 nike

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

但我不确定获取所有这些的最佳方法。 本质上,我们需要使用不同的GROUP BY 的多个COUNT。我能想到的最好的事情是多次复制和粘贴子查询,将 WHERE 更改为“Processed”等,然后将所有这些连接在一起,只从每个查询中选择计数。

有没有更明显的方法来做到这一点?

最佳答案

SELECT  worker, account, date,
SUM(task_completed = 'Received') AS received_count,
SUM(task_completed = 'Processed') AS processed_count
FROM mytable
GROUP BY
worker, account, date

关于mysql - 如何为不同的 GROUP BY 编写具有多个 COUNT 的 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5515357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com