fixed code pet project Activity users

This commit is contained in:
Dmitry Medvedev
2026-06-29 00:01:36 +05:00
parent 650df961a3
commit 007e136953
+22 -3
View File
@@ -1,6 +1,6 @@
--Активность пользователей
CREATE MATERIALIZED VIEW user_activity_summary AS
--CREATE MATERIALIZED VIEW user_activity_summary AS
--CTE кол-во курсов на которые записан пользователь
WITH enrollment_count AS (
@@ -42,6 +42,18 @@ first_view AS (
ORDER BY plv.viewed_at
) AS first_view
FROM pet_lesson_views plv
),
--CTE кол-во курсов доступных пользователю
lesson_user_all_open AS (
SELECT
pe.user_id,
pe.course_id,
COUNT(*) AS lesson_user_all_open
FROM pet_enrollments pe
LEFT JOIN pet_lessons pl ON pl.course_id = pe.course_id
GROUP BY pe.user_id, pe.course_id
ORDER BY user_id, course_id
)
SELECT
@@ -51,13 +63,20 @@ SELECT
MAX(vlc.viewed_lessons_count) AS viewed_lessons_count,
last_view,
first_view,
ROUND(MAX(vlc.viewed_lessons_count * 100.0 / (SELECT COUNT(*) FROM pet_lessons pl)), 2) || '%' AS engagement_rate
ROUND(MAX(vlc.viewed_lessons_count) * 100.0 / lesson_user_all.lesson_user_all_open2, 2) || '%' AS engagement_rate
FROM pet_users pu
LEFT JOIN enrollment_count ec ON pu.id = ec.user_id
LEFT JOIN viewed_lessons_count vlc ON pu.id = vlc.user_id
LEFT JOIN last_view lv ON pu.id = lv.user_id
LEFT JOIN first_view fv ON pu.id = fv.user_id
LEFT JOIN (
SELECT
user_id,
SUM(luao.lesson_user_all_open) AS lesson_user_all_open2
FROM lesson_user_all_open luao
GROUP BY user_id
) AS lesson_user_all ON lesson_user_all.user_id = pu.id
GROUP BY pu.id, ec.enrollment_count, last_view, first_view
GROUP BY pu.id, ec.enrollment_count, last_view, first_view, lesson_user_all.lesson_user_all_open2
ORDER BY pu.id;