如何在特定事件发生之前确定发生的次数

q9rjltbz  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(360)

我有一个重复客户的数据集,他们一次购买一个产品,并想知道他们购买了多少次,直到他们购买了一个特定的项目。我有客户身份证,访问时间戳和购买。

ckocjqey

ckocjqey1#

如果我理解正确,您可以使用窗口函数和聚合:

select customer_id, product_ts, count(*) as num_products_before
from (select t.*,
             min(case when product = :product then timestamp end) over (partition by customerid) as product_ts
      from t
     ) t
where timestamp < product_ts
group by customer_id, product_ts;

相关问题