-- 1. Задание 1: Анализ drop-off точек -- Используя conversion_funnel, найди курсы с самым большим процентом отвала между этапами enrolled → started (WHERE stage_name IN (...)) WITH drop_off AS ( SELECT course_id, stage_name, users_count, LAG(users_count) OVER (PARTITION BY course_id) AS prev FROM conversion_funnel ) SELECT course_id, ROUND(1 - users_count * 1.0 / NULLIF(prev, 0), 2) * 100 || '%' AS percent_of_drop FROM drop_off WHERE stage_name = 'started' ORDER BY percent_of_drop DESC -- ОТВЕТ: Самые большие проценты отвала между enrolled и started замечены на курсе 1 и 3 (62 и 67% соответственно). -- 2. Задание 2: Топ-3 урока с повторными просмотрами -- Используя lesson_popularity_ranking, найди уроки, где avg_views_per_viewer > 1 (пользователи пересматривают) SELECT * FROM lesson_popularity_ranking WHERE avg_views_per_viewer > 1; --Ответ: Это урок 1 'select и from' и урок 4 'агрегации и group by', больше уроков нет с где avg_views_per_viewer > 1. -- 3. Задание 3: Лучшая когорта по retention -- Из user_cohort_analysis выбери месяц с максимальным retention_rate и проанализируй, почему (можно объединить с другими витринами) SELECT * FROM user_cohort_analysis; -- ОТВЕТ: По данному запросу это 2 когорты - январь и февраль 2023 года (по 75%). -- К сожалению, сейчас не могу понять с какими витринами можно ее объединить... -- 4. Задание 4: Анализ плана выполнения -- Запусти `EXPLAIN ANALYZE` на всех витринах. Найди узкие места: Seq Scan, высокие cost, JOIN без индексов, DISTINCT, подзапросы в SELECT. -- Перепиши запросы чтобы достигнуть минимального времени выполнения. -- Напиши что сделал, почему, и насколько быстрее стал запрос