fix course_summary and user_activity files

This commit is contained in:
SERGEY_KONEV
2025-12-19 11:39:12 +03:00
parent 18f736dea4
commit d7a1b19213
2 changed files with 13 additions and 5 deletions
+10 -2
View File
@@ -13,25 +13,33 @@ GROUP BY c.id, c.title
courses_views AS (
SELECT
l.course_id,
COUNT(DISTINCT l.id) AS lessons_count,
COUNT(lv.id) AS total_views,
MAX(lv.viewed_at) AS last_viewed_at,
MIN(lv.viewed_at) AS first_viewed_at
FROM lessons l
JOIN lesson_views lv ON l.id = lv.lesson_id
GROUP BY l.course_id
),
courses_lessons AS (
SELECT
course_id,
COUNT(DISTINCT id) AS lessons_count
FROM lessons
GROUP BY course_id
)
SELECT
cu.course_id,
cu.course_name,
cu.unique_users,
cv.lessons_count,
cl.lessons_count,
cv.total_views,
ROUND(cv.total_views::DECIMAL / NULLIF(cu.unique_users, 0), 2) AS avg_views_per_user,
cv.first_viewed_at,
cv.last_viewed_at
FROM courses_users cu
LEFT JOIN courses_views cv USING(course_id)
LEFT JOIN courses_lessons cl USING(course_id)
ORDER BY cu.course_id;
COMMIT;
@@ -5,7 +5,7 @@ WITH users_views AS (
SELECT
u.id AS user_id,
u.name,
COUNT(DISTINCT lv.lesson_id) AS viewed_lessons_COUNT,
COUNT(DISTINCT lv.lesson_id) AS viewed_lessons_count,
MAX(lv.viewed_at) AS last_view,
MIN(lv.viewed_at) AS first_view
FROM users AS u
@@ -16,7 +16,7 @@ GROUP BY u.id
users_engagement AS (
SELECT
e.user_id AS user_id,
COUNT(l.id) AS lessons_cnt,
COUNT(DISTINCT l.id) AS lessons_cnt,
COUNT(DISTINCT course_id) AS enrollment_count
FROM enrollments AS e
JOIN lessons AS l using(course_id)
@@ -28,7 +28,7 @@ SELECT
uv.name,
ue.enrollment_count,
uv.viewed_lessons_count,
uv.lASt_view,
uv.last_view,
uv.first_view,
ROUND(uv.viewed_lessons_count::DECIMAL / NULLIF(ue.lessons_cnt, 0) * 100, 2) AS engagement_rate
FROM users_views AS uv