繁体   English   中英

如何在MySQL中对多个子查询进行分组

[英]How to group multiple subqueries in MySQL

嗨,我正在尝试对一系列子查询进行分组,但是每行都会得到相同的结果。

     SELECT Campaign_Name,
                    (SELECT COUNT(Bounce)
                    FROM `temp_Data`) AS Sent, (SELECT COUNT(Bounce)
                                            FROM `temp_Data` 
                                            WHERE Bounce = '0') AS  Delivered, (SELECT SUM(Opened) 
                                                        FROM `temp_Data`
                                                        WHERE Opened = '1')AS Opened
FROM temp_Data

GROUP BY Campaign_Name

结果是:

Campaign Name  Sent Delivered Opened
Campaign1      300   278       196
Campaign2      300   278       196

我的数据在0,1中,所以即使我求和,它仍然会给我类似的结果。

如何获得每个广告系列的个人计数?

这可以在单个查询中完成

SELECT
    Campaign_Name,
    COUNT(*) AS Sent,
    COUNT(CASE WHEN Bounce = '0' THEN 1 ELSE NULL END) AS Delivered,
    COUNT(CASE WHEN Opened = '1' THEN 1 ELSE NULL END) AS Opened
FROM temp_Data
GROUP BY Campaign_Name

看一下控制功能COUNT

棘手的是,对于NULL值, COUNT不会递增,因此我正在使用它来进行选择性计数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM