希望解答!万分感激
代码1:select 分类
,sum(访客数
) as "10月" from search.搜索源
WHERE 来源名称
= "aaa"
and 日期
BETWEEN "2021-10-01" AND "2021-10-31"
group by 分类
;
输出结果
代码2:select 分类
,sum(访客数
) as "11月" from search.搜索源
WHERE 来源名称
= “bbb"
and 日期
BETWEEN "2021-11-01" AND "2021-11-30"
group by 分类
;
输出结果
想实现这样的形式
楼上专家的right join 有问题,这些月份中,并不能确定哪个月份的类型是全的,所以应该使用full join
select COALESCE(a.分类,b.分类) 分类,"10月","11月" from
(select 分类,sum(访客数) as "10月" from search.搜索源
WHERE 来源名称 = "aaa"
and 日期 BETWEEN "2021-10-01" AND "2021-10-31"
group by 分类 ) a
full join
(select 分类,sum(访客数) as "11月" from search.搜索源
WHERE 来源名称 = "bbb"
and 日期 BETWEEN "2021-11-01" AND "2021-11-30"
group by 分类) b
on a.分类=b.分类;
mysql 的话,可以通过 left join ...union ... right join 来实现full join 的效果。
或者,如果你有一个完整的分类表的话,建议以那个完整的分类表做主表,去left join 另外这两个月份的数据
select a.分类,a.s10,b.s11 from (select 分类,sum(访客数) as s10 from search.搜索源
WHERE 来源名称 = "aaa"
and 日期 BETWEEN "2021-10-01" AND "2021-10-31" group by 分类) a right join(select 分类,sum(访客数) as s11 from search.搜索源
WHERE 来源名称 = “bbb"
and 日期 BETWEEN "2021-11-01" AND "2021-11-30" group by 分类) b on a.分类=b.分类
子查询