From 717f705fadd10dd2e31dca652e37cc01cb24f8d4 Mon Sep 17 00:00:00 2001 From: George Date: Thu, 11 Dec 2025 18:30:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=80=D0=B8=D0=BD=D1=83=20=D1=81=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=89=D0=B5=D0=B9=20=D0=BE=D1=82=D1=87=D1=91=D1=82=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gmokrousov/postgresql/DM_platform_summary.sql | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 gmokrousov/postgresql/DM_platform_summary.sql diff --git a/gmokrousov/postgresql/DM_platform_summary.sql b/gmokrousov/postgresql/DM_platform_summary.sql new file mode 100644 index 0000000..3ff7377 --- /dev/null +++ b/gmokrousov/postgresql/DM_platform_summary.sql @@ -0,0 +1,24 @@ +create materialized view platform_summary as + with + lv_stats as ( + select + count(distinct user_id) as users_with_views, + count(*)::decimal / count(distinct lesson_id) as avg_views_per_lesson + from lesson_views + ) + select + total_users, + total_courses, + total_lessons, + users_with_views, + round((total_lessons::decimal / total_courses), 2) AS avg_lessons_per_course, + round(avg_views_per_lesson, 2) as avg_views_per_lesson + from + ( + select + (select count(*) from users) as total_users, + (select count(*) from courses) as total_courses, + count(*) as total_lessons + from lessons + ) as s + cross join lv_stats as lv; \ No newline at end of file