我有一个用户数据集和他们对订阅采取的各种操作。我想计算第二次或更多次“购买”的用户数量。例如:
| 用户标识|创建_ts|行动|
| --|--|--|
| 123 |2023年10月1日|购买|
| 123 |2023年10月2日|购买|
| 789 |2023年10月1日|购买|
预期成果:
| 用户标识|创建_ts|计数|
| --|--|--|
| 123 |2023年10月2日| 1 |
我只想计算购买时,它发生了一次以上的第二天或更多的购买发生。
现在,我有下面的查询,但它是不完全正确的,因为它不排除第一次购买。提前感谢您的任何帮助!
select
created_ts::date as date_day
, count(distinct user_id) as reactivations
from user_subscription_history
where user_id in
(select
user_id
from user_subscription_history where notification_type = 'Purchase'
group by user_id
having count(*) > 1)
group by 1
字符串
1条答案
按热度按时间7y4bm7vi1#
你可以使用
ROW_NUMBER()
窗口函数来实现:Schema(PostgreSQL v15)
字符串
查询#1
型
| date_day|再活化|
| --|--|
| 2023-10-02T00:00:00.000Z| 1 |
View on DB Fiddle