Mysql按日期分组,列中有子查询

Mysql按日期分组,列中有子查询,mysql,Mysql,我有这张桌子: id datetime company adset 1 2019-04-08 15:12:11 1 1 2 2019-04-08 14:04:32 2 1 3 2019-04-08 14:04:45 1 1 4 2019-04-07 23:29:55 2 2 5 2019-04-06 21:14:35 2 2 但我的查询需要每个公司的列,我得到的结果实际上是: DATE(dat

我有这张桌子:

id datetime company adset 1 2019-04-08 15:12:11 1 1 2 2019-04-08 14:04:32 2 1 3 2019-04-08 14:04:45 1 1 4 2019-04-07 23:29:55 2 2 5 2019-04-06 21:14:35 2 2 但我的查询需要每个公司的列,我得到的结果实际上是:

DATE(datetime) total_leads company adset 2019-04-07 94 94 94 2019-04-06 104 104 104 2019-04-05 93 93 93 日期(datetime)公司adset总客户数 2019-04-07 94 94 94 2019-04-06 104 104 104 2019-04-05 93 93 93 最终报告应类似于:

date total_leads c1_adset1 c2_adset1 c2_adset2 2019-04-08 15 5 7 3 2019-04-07 12 3 7 2 2019-04-06 10 3 3 4 日期总引导c1\U adset1 c2\U adset1 c2\U adset2 2019-04-08 15 5 7 3 2019-04-07 12 3 7 2 2019-04-06 10 3 3 4 如何按日期从公司和每个adset获取总潜在客户? 我不得不用adset分开,因为2号公司使用adset 1和2,1号公司只使用adset 1


任何帮助都将不胜感激

很难确定,因为您的预期结果与示例数据并不匹配,但我怀疑您正在寻找条件聚合:


每个
SUM()!你让我开心。工作完美!
date        total_leads c1_adset1   c2_adset1   c2_adset2
2019-04-08  15          5           7           3
2019-04-07  12          3           7           2
2019-04-06  10          3           3           4
SELECT
    DATE(datetime) AS `date`, 
    COUNT(*) as `total_leads`, 
    SUM(company = 1 AND adset = 1) AS `c1_adset1`,
    SUM(company = 1 AND adset = 2) AS `c1_adset2,
    SUM(company = 2 AND adset = 1) AS `c2_adset1`,
    SUM(company = 2 AND adset = 2) AS `c2_adset2`
FROM `leads` 
WHERE datetime between (CURDATE() - INTERVAL 1 MONTH ) AND CURDATE() 
GROUP BY DATE(datetime)
ORDER BY `date` DESC