Final fix

This commit is contained in:
Azamat
2026-01-11 17:47:05 +06:00
parent 5edbdc2e8c
commit 049de3c93a
+14 -13
View File
@@ -1,15 +1,16 @@
CREATE MATERIALIZED VIEW user_activity_summary AS CREATE MATERIALIZED VIEW user_activity_summary AS
SELECT SELECT
u.id AS user_id, u.id AS user_id, -- user_id
u.name, u.name, -- name
COUNT(DISTINCT e.course_id) AS enrollment_count, COUNT(DISTINCT e.course_id) AS enrollment_count, -- кол-во записей на курсы
COUNT(DISTINCT lv.lesson_id) AS viewed_lessons_count, COUNT(DISTINCT lv.lesson_id) AS viewed_lessons_count, -- кол-во просмотренных уроков
MAX(lv.viewed_at) AS last_viewed, MAX(lv.viewed_at) AS last_viewed, -- последний просмотр
MIN(lv.viewed_at) AS first_viewed, MIN(lv.viewed_at) AS first_viewed, -- первый просмотр
ROUND (COUNT(DISTINCT lv.lesson_id) * 1.0 / NULLIF(COUNT(DISTINCT l.id), 0) * 100, 2) AS "engagement_rate(%)" ROUND(COUNT(DISTINCT l.course_id) * 100.0 / COUNT(DISTINCT l.id), 2) || '%' AS engagement_rate -- вовлеченность(процент просмотренных/записанным)
FROM amaksatov.users u FROM amaksatov.users u -- основная таблица
LEFT JOIN enrollments e ON e.user_id = u.id JOIN enrollments e ON e.user_id = u.id -- связь users с enrollments
LEFT JOIN lessons l ON l.course_id = e.course_id LEFT JOIN lesson_views lv ON lv.user_id = e.user_id -- связь lessons с lesson_views
LEFT JOIN lesson_views lv ON lv.lesson_id = l.id AND u.id = lv.user_id JOIN lessons l ON l.course_id = e.course_id -- связь уроков с курсами пользователя
GROUP BY u.id; GROUP BY u.id, u.name -- группировка по user_id и name
ORDER BY user_id; -- сортировка по user_id