витрина 'Эффективность курсов' для 'Пет-проект: Онлайн-курсы'
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
|||||||
|
CREATE MATERIALIZED VIEW course_summary AS
|
||||||
|
WITH courses_unique_users AS (
|
||||||
|
SELECT
|
||||||
|
e.course_id,
|
||||||
|
count(e.user_id) AS unique_users
|
||||||
|
FROM
|
||||||
|
enrollments e
|
||||||
|
GROUP BY
|
||||||
|
e.course_id
|
||||||
|
),
|
||||||
|
lessons_results AS (
|
||||||
|
SELECT
|
||||||
|
l.course_id,
|
||||||
|
count(distinct l.id) AS lessons_count,
|
||||||
|
count(lv.lesson_id) AS total_views,
|
||||||
|
min(lv.viewed_at)::date AS first_viewed_at,
|
||||||
|
max(lv.viewed_at)::date AS last_viewed_at
|
||||||
|
FROM
|
||||||
|
lessons l
|
||||||
|
LEFT JOIN
|
||||||
|
lesson_views lv ON l.id = lv.lesson_id
|
||||||
|
GROUP BY
|
||||||
|
l.course_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
c.id AS course_id,
|
||||||
|
c.title AS course_title,
|
||||||
|
cuu.unique_users,
|
||||||
|
lr.lessons_count,
|
||||||
|
lr.total_views,
|
||||||
|
round(lr.total_views / cuu.unique_users::numeric, 2) AS avg_views_per_user,
|
||||||
|
lr.first_viewed_at,
|
||||||
|
lr.last_viewed_at
|
||||||
|
FROM
|
||||||
|
courses c
|
||||||
|
JOIN
|
||||||
|
courses_unique_users cuu ON c.id = cuu.course_id
|
||||||
|
JOIN
|
||||||
|
lessons_results lr ON c.id = lr.course_id
|
||||||
|
ORDER BY
|
||||||
|
c.id;
|
||||||
Reference in New Issue
Block a user