For each session (using the basic 30-min gap rule), return: - converted: true if the session contains at least one purchase event - time_to_purchase_sec: seconds from the session's first event to its EARLIEST purchase event, or NULL if no purchase
Sort by user_id then session_no ascending.