fixed code pet project Activity users
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
--Активность пользователей
|
--Активность пользователей
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW user_activity_summary AS
|
--CREATE MATERIALIZED VIEW user_activity_summary AS
|
||||||
|
|
||||||
--CTE кол-во курсов на которые записан пользователь
|
--CTE кол-во курсов на которые записан пользователь
|
||||||
WITH enrollment_count AS (
|
WITH enrollment_count AS (
|
||||||
@@ -42,6 +42,18 @@ first_view AS (
|
|||||||
ORDER BY plv.viewed_at
|
ORDER BY plv.viewed_at
|
||||||
) AS first_view
|
) AS first_view
|
||||||
FROM pet_lesson_views plv
|
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
|
SELECT
|
||||||
@@ -51,13 +63,20 @@ SELECT
|
|||||||
MAX(vlc.viewed_lessons_count) AS viewed_lessons_count,
|
MAX(vlc.viewed_lessons_count) AS viewed_lessons_count,
|
||||||
last_view,
|
last_view,
|
||||||
first_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
|
FROM pet_users pu
|
||||||
LEFT JOIN enrollment_count ec ON pu.id = ec.user_id
|
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 viewed_lessons_count vlc ON pu.id = vlc.user_id
|
||||||
LEFT JOIN last_view lv ON pu.id = lv.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 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;
|
ORDER BY pu.id;
|
||||||
Reference in New Issue
Block a user