added STEP4.1, STEP4.2, STEP5
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
- ВИТРИНА АНАЛИЗА ПОПУЛЯРНОСТИ КАЖДОГО УРОКА
|
||||||
|
- ВСЕ УЧАСТВУЮЩИЕ ИЗМЕРЕНИЯ 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);
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
- ВИТРИНА АНАЛИЗА НЕАКТИВНЫХ ПОЛЬЗОВАТЕЛЕЙ
|
||||||
|
- ВСЕ УЧАСТВУЮЩИЕ ТАБЛИЦЫ DISTRIBUTED BY (user_id)
|
||||||
|
- ИТОГОВОЕ ПРЕДСТВАЛЕНИЕ ТАК ЖЕ DISTRIBUTED BY (user_id)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
CREATE MATERIALIZED VIEW IF NOT EXISTS dm.inactive_users_summary AS
|
||||||
|
-- EXPLAIN ANALYZE
|
||||||
|
WITH t1 AS (
|
||||||
|
SELECT
|
||||||
|
user_id,
|
||||||
|
count(DISTINCT course_id) AS enrollments_count
|
||||||
|
FROM core.enrollments
|
||||||
|
GROUP BY user_id
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
u.user_id,
|
||||||
|
u.name AS user_name,
|
||||||
|
u.email,
|
||||||
|
u.age,
|
||||||
|
coalesce(t1.enrollments_count, 0),
|
||||||
|
u.registration_date
|
||||||
|
FROM core.dim_user u
|
||||||
|
LEFT JOIN t1 USING (user_id)
|
||||||
|
WHERE u.user_id NOT IN (SELECT user_id FROM core.fact_lesson_views)
|
||||||
|
|
||||||
|
DISTRIBUTED BY (user_id);
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
- ВИТРИНА ДЛЯ АНАЛИЗА КОНВЕРСИИ ПРОХОЖДЕНИЯ КУРСА ПОЛЬЗОВАТЕЛЯМИ
|
- ВИТРИНА ДЛЯ АНАЛИЗА КОНВЕРСИИ ПРОХОЖДЕНИЯ КУРСА ПОЛЬЗОВАТЕЛЯМИ
|
||||||
|
- CORE.DIM_USER И CORE.FACT_LESSON_VIEWS DISTRIBUTED BY (user_id)
|
||||||
- ИТОГОВОЕ РАСПРЕДЕЛЕНИЕ ПО (user_id, course_id)
|
- ИТОГОВОЕ РАСПРЕДЕЛЕНИЕ ПО (user_id, course_id)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
CREATE MATERIALIZED VIEW dm.course_completion_rate AS
|
CREATE MATERIALIZED VIEW IF NOT EXISTS dm.course_completion_rate AS
|
||||||
WITH t1 AS (
|
WITH t1 AS (
|
||||||
SELECT
|
SELECT
|
||||||
e.user_id,
|
e.user_id,
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
SELECT * FROM dm.lesson_popularity_summary LIMIT 10;
|
||||||
|
SELECT * FROM dm.inactive_users_summary LIMIT 10;
|
||||||
|
SELECT * FROM dm.course_completion_rate LIMIT 10;
|
||||||
Reference in New Issue
Block a user