Исправил недочёты после код-ревью.
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user