Files
homework/dmedvedev/11.7 Pet Project Additional tasks.sql
T
Dmitry Medvedev 2dc158dd95 fixed mistakes
2026-07-19 20:14:03 +05:00

45 lines
2.3 KiB
SQL
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 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.
-- Перепиши запросы чтобы достигнуть минимального времени выполнения.
-- Напиши что сделал, почему, и насколько быстрее стал запрос