/* - ВИТРИНА АНАЛИЗА ПОПУЛЯРНОСТИ КАЖДОГО УРОКА - ВСЕ УЧАСТВУЮЩИЕ ИЗМЕРЕНИЯ DISTRIBUTED REPLICATED - ИТОГОВОЕ ПРЕДСТВАЛЕНИЕ DISTRIBUTED BY (lesson_id, course_id) */ CREATE MATERIALIZED VIEW IF NOT EXISTS dm.lesson_popularity_summary AS -- EXPLAIN ANALYZE WITH t1 AS ( SELECT lesson_id, course_id, COUNT(lesson_id) AS total_views, COUNT(DISTINCT user_id) AS unique_users, MIN(viewed_at)AS first_view, MAX(viewed_at)AS last_view FROM core.fact_lesson_views GROUP BY lesson_id, course_id ), t2 AS ( SELECT l.lesson_id, l.title AS lesson_title, c.course_id, c.title AS course_title FROM core.dim_course c LEFT JOIN core.dim_lesson l USING(course_id) ) SELECT t1.lesson_id, t2.lesson_title, t1.course_id, t2.course_title, t1.total_views, t1.unique_users, t1.first_view, t1.last_view FROM t1 LEFT JOIN t2 USING(lesson_id) DISTRIBUTED BY (lesson_id, course_id);