select user_id, first_buy_date, second_buy_date, cnt from ( select *, min(date) over(partition by user_id ) first_buy_date, lead(date,1) over(partition by user_id order by date) second_buy_date, count(product_name) over(partition by user_id) cnt, row_number() over(partition by user_id order by date)...