gpt4 book ai didi

mysql - 计算表的行数,同时检查值是否为 NULL 并按另一列的值对结果进行分组

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

我一直在努力寻找解决我愚蠢的小问题的方法。

MySQL 表如下所示:

-- Create a table that will record all AdCamp hits
CREATE TABLE `advertising_campaign_hits` (
`adcamp_hit_id` INT NOT NULL AUTO_INCREMENT,
`adcamp_id` INT,
`customer_id` INT,
`recorded_at` DATETIME,
PRIMARY KEY (`adcamp_hit_id`)
) ENGINE=MyISAM;

示例值如下所示:

a_h_id | a_id | c_id | ... 
1 | 1 | 1 | ...
2 | 1 | 2 | ...
3 | 1 | 3 | ...
4 | 1 | 0 | ...
5 | 1 | 0 | ...
6 | 2 | 1 | ...
7 | 2 | 0 | ...

这里的目标是计算每个广告事件的点击次数,但将它们分为两组 KnownCustomers 和 UnknownCustomers,然后进一步按 adcamp_id 将它们划分。

所以我期望得到的结果是:

adcamp_id | HitsByKnown |  HitsByUnknown
1 | 3 | 2
2 | 1 | 1

我目前陷入困境,我可以让 SQL 为每个 adcamp 提供两行单独的行,但 COUNT(*) 的结果列出了我的所有条目。

所以我得到的是:

adcamp_id | HitsByKnown |  HitsByUnknown
1 | 4 | 3
2 | 4 | 3

我不知道如何将其全部分割。

最佳答案

按 adcamp_id 从 Advertising_campaign_hits 组中选择 adcamp_id,sum(if(customer_id>0,1,0)) as HitsByKnown,sum(if(customer_id=0,1,0)) as HitsByUnknown

或者更简单:

按 adcamp_id 从 Advertising_campaign_hits 组中选择 adcamp_id,sum(customer_id!=0) as HitsByKnown,sum(customer_id=0) as HitsByUnknown

关于mysql - 计算表的行数,同时检查值是否为 NULL 并按另一列的值对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28458907/

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