homework, pet project DE Dmitry_Medvedev #1

Open
dmitry_medvedev wants to merge 264 commits from md_branch into main
Showing only changes of commit c5381da248 - Show all commits
@@ -0,0 +1,48 @@
CREATE MATERIALIZED VIEW platform_summary as
WITH users_count AS (
SELECT
count(*) AS total_users
FROM
users
),
courses_count AS (
SELECT
count(*) AS total_courses
FROM
courses
),
lessons_count AS (
SELECT
count(*) AS total_lessons
FROM
lessons
),
users_with_views AS (
SELECT
count(distinct user_id) AS users_with_views
FROM
lesson_views
),
views_count AS (
SELECT
count(*) AS total_views
FROM
lesson_views lv
)
SELECT
uc.total_users,
cc.total_courses,
lc.total_lessons,
uwv.users_with_views,
round(lc.total_lessons / cc.total_courses::NUMERIC, 2) AS avg_lessons_per_course,
round(vc.total_views / lc.total_lessons::NUMERIC, 2) AS avg_views_per_lesson
FROM
users_count uc
CROSS JOIN
courses_count cc
CROSS JOIN
lessons_count lc
CROSS JOIN
users_with_views uwv
CROSS JOIN
views_count AS vc;