从用户交易数据计算跨品类销售额——针对完成超过 1 笔交易的用户

Computing cross-category sales from user transaction data - For users who have done more than 1 transaction

嗨,

输入数据

我有一个每日用户级别 transaction_data,我想计算月度跨类别销售额 - 仅从超过 1 个类别购买过的用户的汇总。

输出-

有人可以建议如何在 sql 中解决这个问题吗?

嗯。 . .这似乎符合您的描述:

select date_trunc('month', day), category,
       sum(transaction_amount), count(distinct user_id)
from (select d.*,
             min(category) over (partition by userid, date_trunc('month', day)) as min_category,
             max(category) over (partition by userid, date_trunc('month', day)) as max_category
      from daily d
     ) d
where min_category <> max_category -- at least two categories
group by date_trunc('month', day), category;