Как определить количество вхождений перед указанием c даже - PullRequest
0 голосов
/ 18 июня 2020

У меня есть набор данных о постоянных покупателях, которые покупают по одному продукту за раз, и хотел бы знать, сколько раз они покупали, пока не купили конкретный c элемент. У меня есть идентификатор клиента, отметка времени посещения и совершенной покупки.

1 Ответ

0 голосов
/ 18 июня 2020

Если я правильно понял, вы можете использовать оконные функции и агрегирование:

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;
...