-- Этап 3. Анализ и запросы - Напиши SQL-запросы к витринам -- Напиши свои вариации для практики-- -- Топ-5 самых просматриваемых уроков SELECT lesson_title, course_title, total_views FROM dsolovianov.lesson_popularity_summary ORDER BY total_views DESC LIMIT 5; -- Неактивные пользователи, записавшиеся на курсы SELECT name, email, registered_courses_count FROM dsolovianov.inactive_users_summary WHERE registered_courses_count > 0 ORDER BY registration_date DESC; -- Курсы с самым высоким процентом завершения SELECT course_title, AVG(completion_rate) AS avg_completion FROM dsolovianov.course_completion_rate GROUP BY course_title ORDER BY avg_completion DESC LIMIT 5; -- Мои вариации -- -- Среднее количество учеников на урок по каждому курсу SELECT course_title, ROUND(AVG(unique_users), 2) AS avg_users_lesson, SUM(total_views) AS total_course_views FROM dsolovianov.lesson_popularity_summary GROUP BY course_title ORDER BY avg_users_lesson DESC; -- Возрастное распределение неактивных пользователей SELECT CASE WHEN age < 25 THEN 'до 25' WHEN age BETWEEN 25 AND 30 THEN '25-30' WHEN age BETWEEN 31 AND 35 THEN '31-35' ELSE '35+' END AS age_group, COUNT(*) AS inactive_users_count, AVG(registered_courses_count) AS avg_courses_enrolled FROM dsolovianov.inactive_users_summary GROUP BY age_group ORDER BY age_group; -- Пользователи, которые начали, но не закончили курс (completion_rate между 0 и 1) SELECT user_name, course_title, lessons_viewed, lessons_in_course, ROUND(completion_rate * 100, 0) AS no_completion, (lessons_in_course - lessons_viewed) AS remaining_lessons FROM dsolovianov.course_completion_rate WHERE completion_rate BETWEEN 0.01 AND 0.99 ORDER BY completion_rate DESC, user_name; -- Прогресс каждого пользователя по курсам (с указанием статуса) SELECT user_name, course_title, lessons_viewed, lessons_in_course, ROUND(completion_rate * 100, 0) AS progress_percent, CASE WHEN completion_rate = 1.0 THEN 'Пройден' WHEN completion_rate = 0 THEN 'Не начат' WHEN completion_rate >= 0.5 THEN 'В процессе (>50%)' ELSE 'В процессе (<50%)' END AS status FROM dsolovianov.course_completion_rate ORDER BY user_name, completion_rate DESC;