这是我的查询:
select count(1) from
(select count(1) num, user_id from pos_transactions pt
where date(created_at) <= '2020-6-21'
group by user_id
having num = 1) x
它提供了在2020-6-21
之前进行过1次交易的用户数。现在,我也想按date(created_at)
对其进行分组。我的意思是,我想获取日期列表(例如2020-6-21
,2020-6-22
等。)以及该日期(天)内进行过1次交易的用户数。
任何想法我该怎么做?
编辑:上面的查询结果正确,问题是,现在是手动的。我的意思是,我必须手动增加2020-6-21
。我想自动制作。换句话说,我想要一个所有日期(从2020-6-21
到现在)的列表,其中包含在该日期之前进行过1次交易的用户数。
答案 0 :(得分:0)
如果您希望每天进行一次交易的用户数量,则还需要按日期进行汇总:
select dte, count(*)
from (select date(created_at) as dte, user_id
from pos_transactions pt
where date(created_at) <= '2020-6-21'
group by dte, user_id
having count(*) = 1
) du
group by dte;