Исправил недочёты после код-ревью.

This commit is contained in:
Anton
2025-12-07 16:28:38 +04:00
parent 04fe13e9d9
commit cd513f80f7
5 changed files with 9 additions and 17 deletions
@@ -20,9 +20,7 @@ inner join edu_platform.lesson_views lv on u.id = lv.user_id
left join edu_platform.lessons l on lv.lesson_id = l.id
left join edu_platform.lessons l2 on e.course_id = l2.course_id
group by
u.id, u.name
ORDER by
u.id;
u.id, u.name;
-- После анализа EXPLAIN
-- Убрал диблирование строк, возникающее при Join-ах.
@@ -41,7 +39,7 @@ users_enroll as (
select
u.id as user_id ,
u.name as name,
COUNT(e.course_id) as enrollment_count,
COUNT(DISTINCT e.course_id) as enrollment_count,
SUM(cl.lesson_count) as lesson_sum
from
edu_platform.users u
@@ -57,7 +55,6 @@ users_lesson_views as (
MIN(lv.viewed_at) as first_view
from
edu_platform.lesson_views lv
left join edu_platform.lessons l on lv.lesson_id = l.id
group by lv.user_id
)
select
@@ -67,12 +64,10 @@ select
ulv.viewed_lessons_count,
ulv.last_view,
ulv.first_view,
ROUND( (ulv.viewed_lessons_count * 100.0) / nullif(lesson_sum, 0),
ROUND( (nullif(ulv.viewed_lessons_count, 0) * 100.0) / ue.lesson_sum,
2) as engagement_rate
from users_enroll ue
inner join users_lesson_views ulv on ue.user_id = ulv.user_id
order by
user_id;
left join users_lesson_views ulv on ue.user_id = ulv.user_id;
@@ -48,5 +48,4 @@ from
edu_platform.courses c
LEFT JOIN enroll e ON c.id = e.course_id
LEFT JOIN lessons l ON c.id = l.course_id
LEFT JOIN views v ON c.id = v.course_id
ORDER BY c.id;
LEFT JOIN views v ON c.id = v.course_id;