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

时间:2016-07-27 13:59:58

标签: mysql

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

my-module:
  version: 1.x
  js:
    https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js: { type: external, minified: true }
    https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-sanitize.min.js { type: external, minified: true }
    js/my-module.js: {preprocess: false}
  dependencies:
    - core/jquery
    - core/jquery.ui
    - core/jquery.ui.accordion

结果是:

     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

我的数据是0,1所以即使我总结它仍然给我类似的结果。

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

1 个答案:

答案 0 :(得分:0)

这可以在一个查询中完成

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

查看control functionsCOUNT

棘手的部分是COUNT不会增加NULL值,因此我会使用它来进行选择性计数。