我有一个表 entries
,其中包含以下列:id,email,sku,payment,created_at
我需要编写一些查询来对条目进行一些分析 . 我想要合并为一个的两个查询是:
SELECT sku,count(email)AS total_current FROM entries WHERE payment IS NOT NULL AND created_at> = DATE_SUB(NOW(),INTERVAL 1 WEEK)GROUP BY sku ORDER BY sku ASC
和
SELECT sku,count(email)AS total_previous FROM entries WHERE payment IS NOT NULL AND created_at <DATE_SUB(NOW(),INTERVAL 1 WEEK)AND created_at> = DATE_SUB(NOW(),INTERVAL 2 WEEK)GROUP BY sku ORDER BY sku ASC
这里的目标是拥有1组结果,其中3列显示第2列中每个sku的记录数,以及第3列中相同sku的记录数 .
-
sku(所有内容都分组)
-
total_current(计算每个单独sku的第一个查询日期范围内的记录数)
-
total_previous(计算每个单独sku的第二个查询日期范围内的记录数)
结果应按sku升序排序 .
我使用UNION和JOIN等尝试过很多不同的东西,但到目前为止还没有运气 . 任何帮助将不胜感激!
1 回答
您可以使用条件聚合来组合两个查询: