This commit is contained in:
Azamat
2026-01-11 16:53:12 +06:00
parent 43e731927f
commit 5edbdc2e8c
+3 -7
View File
@@ -6,14 +6,10 @@ SELECT
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 ( ROUND (COUNT(DISTINCT lv.lesson_id) * 1.0 / NULLIF(COUNT(DISTINCT l.id), 0) * 100, 2) AS "engagement_rate(%)"
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 FROM amaksatov.users u
LEFT JOIN enrollments e ON e.user_id = u.id LEFT JOIN enrollments e ON e.user_id = u.id
LEFT JOIN lessons l ON l.course_id = e.course_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 LEFT JOIN lesson_views lv ON lv.lesson_id = l.id AND u.id = lv.user_id
GROUP BY u.id GROUP BY u.id;
HAVING COUNT(e.id) > 0;