Files
homework/amaksatov/postgresql/OS-330.sql
T
2026-01-11 17:47:05 +06:00

17 lines
1.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
CREATE MATERIALIZED VIEW user_activity_summary AS
SELECT
u.id AS user_id, -- user_id
u.name, -- name
COUNT(DISTINCT e.course_id) AS enrollment_count, -- кол-во записей на курсы
COUNT(DISTINCT lv.lesson_id) AS viewed_lessons_count, -- кол-во просмотренных уроков
MAX(lv.viewed_at) AS last_viewed, -- последний просмотр
MIN(lv.viewed_at) AS first_viewed, -- первый просмотр
ROUND(COUNT(DISTINCT l.course_id) * 100.0 / COUNT(DISTINCT l.id), 2) || '%' AS engagement_rate -- вовлеченность(процент просмотренных/записанным)
FROM amaksatov.users u -- основная таблица
JOIN enrollments e ON e.user_id = u.id -- связь users с enrollments
LEFT JOIN lesson_views lv ON lv.user_id = e.user_id -- связь lessons с lesson_views
JOIN lessons l ON l.course_id = e.course_id -- связь уроков с курсами пользователя
GROUP BY u.id, u.name -- группировка по user_id и name
ORDER BY user_id; -- сортировка по user_id