Files
homework/skonev/greenplum/STEP4.2_dm.inactive_users_summary.sql
T
2025-12-25 12:25:42 +03:00

28 lines
715 B
SQL

/*
- ВИТРИНА АНАЛИЗА НЕАКТИВНЫХ ПОЛЬЗОВАТЕЛЕЙ
- ВСЕ УЧАСТВУЮЩИЕ ТАБЛИЦЫ 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);