Таблица `events(user_id, event_time, event_name)`. Считай новую сессию при разрыве >30 мин. Сколько сессий прошли воронку `view → add_to_cart → purchase` (события идут в этом порядке внутри одной сессии)? Верни одно число в колонке `funnel_complete`.