Done
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
CREATE MATERIALIZED VIEW user_activity_summary AS
|
||||
SELECT
|
||||
u.id AS user_id,
|
||||
u.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 (
|
||||
CASE
|
||||
WHEN COUNT(DISTINCT l.id) = 0 THEN NULL
|
||||
ELSE COUNT(DISTINCT lv.lesson_id) * 1.0 / COUNT(DISTINCT l.id) * 100
|
||||
END, 2)::TEXT || '%' AS "engagement_rate"
|
||||
FROM amaksatov.users u
|
||||
LEFT JOIN enrollments e ON e.user_id = u.id
|
||||
LEFT JOIN lessons l ON l.course_id = e.course_id
|
||||
LEFT JOIN lesson_views lv ON lv.lesson_id = l.id AND u.id = lv.user_id
|
||||
GROUP BY u.id
|
||||
HAVING COUNT(e.id) > 0;
|
||||
Reference in New Issue
Block a user