select user_id, first_buy_date, second_buy_date, count(1) from (select o.user_id user_id, first_value(o.date) over(partition by o.user_id order by o.date) as first_buy_date, NTH_value(o.date,2) over(partition by o.user_id order by o.date ROWS BETWEEN UNBOUNDED PRECEDING A...