全,
我对active客户端的定义是自2019年11月以来从事事务的任何人。我不知道我怎么能做到这一点。例如:
select
customerid,
sum(count) as transaction_count,
sum(value) as dollar_amount
from
cust_orders 我上面的表是事务级的,例如transaction_id = 1,2.等等,我在客户层面上把它卷起来,但我只想要那些自2019年11月以来至少做过一次交易的客户。我不认为这是简单的添加:‘哪里一年月> 201911’。因为,如果我有一个客户从那时起就没有交易过,我不希望他们上面的任何汇总数据。如果我有自2019年11月开始交易的客户,我希望他们在此之前的交易数量包括在内。也许我能做到:
select
customerid,
sum(count) as transaction_count,
sum(value) as dollar_amount
from
cust_orders where customerid in (select
distinct
customerid
from cust_orders where yearmonth > 201911))
),这有意义吗?
发布于 2021-04-26 10:32:52
首先,您需要在第一个查询中进行聚合。其次,可以使用HAVING子句标识活动客户:
select customerid,
sum(count) as transaction_count,
sum(value) as dollar_amount
from cust_orders
group by customerid
having max(yearmonth) >= 201911;注意:我把“自2011年11月以来”解释为包括那个月,所以我把比较改为>=。
https://stackoverflow.com/questions/67264993
复制相似问题