From 23bb973ab04753f7997335c3e856eb1318202fa8 Mon Sep 17 00:00:00 2001 From: dr0zd Date: Mon, 5 Jan 2026 22:56:56 +0700 Subject: [PATCH] course_summary materialized view --- mdrozdov/postgresql/dm_course_summary.sql | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 mdrozdov/postgresql/dm_course_summary.sql diff --git a/mdrozdov/postgresql/dm_course_summary.sql b/mdrozdov/postgresql/dm_course_summary.sql new file mode 100644 index 0000000..17a84a4 --- /dev/null +++ b/mdrozdov/postgresql/dm_course_summary.sql @@ -0,0 +1,16 @@ +create materialized view dm_course_summary as +select + e.course_id, + c.title, + count(distinct e.user_id) as unique_users, + count(distinct l.id) as lessons_count, + count(distinct lv.id) as total_views, + count(distinct lv.id)*1.0/count(distinct e.user_id) as avg_views_per_user, + min(lv.viewed_at) as first_viewed_at, + max(lv.viewed_at) as last_viewed_at +from enrollments e +join courses c on e.course_id = c.id +join lessons l on c.id = l.course_id +join lessons_views lv on lv.lesson_id = l.id +group by e.course_id, c.title +order by e.course_id