1. Добавил состаной ключ для course_completion_rate,

Сделал DROP TABLE для вьюх,
изменил age UInt8 на UInt32
2. Добавил схемы в Этап 3
This commit is contained in:
Bonifatsiy
2026-05-18 19:55:26 +04:00
parent bfc54f9dcf
commit c2eacd2bde
2 changed files with 16 additions and 5 deletions
@@ -18,6 +18,8 @@ CREATE TABLE dsolovianov.lesson_popularity_summary ON CLUSTER clickhouse_cluster
) )
ORDER BY (course_id, lesson_id); ORDER BY (course_id, lesson_id);
DROP TABLE IF EXISTS dsolovianov.lesson_popularity_summary_mv ON CLUSTER clickhouse_cluster SYNC;
CREATE MATERIALIZED VIEW dsolovianov.lesson_popularity_summary_mv ON CLUSTER clickhouse_cluster CREATE MATERIALIZED VIEW dsolovianov.lesson_popularity_summary_mv ON CLUSTER clickhouse_cluster
TO dsolovianov.lesson_popularity_summary TO dsolovianov.lesson_popularity_summary
AS AS
@@ -58,7 +60,7 @@ CREATE TABLE dsolovianov.inactive_users_summary ON CLUSTER clickhouse_cluster (
user_id UInt32, user_id UInt32,
name String, name String,
email String, email String,
age UInt8, age UInt32,
registered_courses_count UInt32, registered_courses_count UInt32,
registration_date Date registration_date Date
) ENGINE = ReplicatedMergeTree( ) ENGINE = ReplicatedMergeTree(
@@ -67,6 +69,8 @@ CREATE TABLE dsolovianov.inactive_users_summary ON CLUSTER clickhouse_cluster (
) )
ORDER BY user_id; ORDER BY user_id;
DROP TABLE IF EXISTS dsolovianov.inactive_users_summary_mv ON CLUSTER clickhouse_cluster SYNC;
CREATE MATERIALIZED VIEW dsolovianov.inactive_users_summary_mv ON CLUSTER clickhouse_cluster CREATE MATERIALIZED VIEW dsolovianov.inactive_users_summary_mv ON CLUSTER clickhouse_cluster
TO dsolovianov.inactive_users_summary TO dsolovianov.inactive_users_summary
AS AS
@@ -184,3 +188,6 @@ FROM dsolovianov.core_enrollments e
JOIN dsolovianov.core_dim_user u ON e.user_id = u.user_id JOIN dsolovianov.core_dim_user u ON e.user_id = u.user_id
JOIN dsolovianov.core_dim_course c ON e.course_id = c.course_id JOIN dsolovianov.core_dim_course c ON e.course_id = c.course_id
GROUP BY e.user_id, u.name, e.course_id, c.title; GROUP BY e.user_id, u.name, e.course_id, c.title;
SELECT * FROM dsolovianov.course_completion_rate ORDER BY user_id;
@@ -1,21 +1,25 @@
-- Этап 3. Анализ и запросы - Напиши SQL-запросы к витринам -- Напиши свои вариации для практики-- -- Этап 3. Анализ и запросы - Напиши SQL-запросы к витринам
-- Напиши свои вариации для практики--
-- Топ-5 самых просматриваемых уроков -- Топ-5 самых просматриваемых уроков
SELECT SELECT
lesson_title, lesson_title,
course_title, course_title,
total_views total_views
FROM lesson_popularity_summary FROM dsolovianov.lesson_popularity_summary
ORDER BY total_views DESC ORDER BY total_views DESC
LIMIT 5; LIMIT 5;
-- Неактивные пользователи, записавшиеся на курсы -- Неактивные пользователи, записавшиеся на курсы
SELECT SELECT
name, name,
email, email,
registered_courses_count registered_courses_count
FROM inactive_users_summary FROM dsolovianov.inactive_users_summary
WHERE registered_courses_count > 0 WHERE registered_courses_count > 0
ORDER BY registration_date DESC; ORDER BY registration_date DESC;
@@ -24,7 +28,7 @@ ORDER BY registration_date DESC;
SELECT SELECT
course_title, course_title,
AVG(completion_rate) AS avg_completion AVG(completion_rate) AS avg_completion
FROM course_completion_rate FROM dsolovianov.course_completion_rate
GROUP BY course_title GROUP BY course_title
ORDER BY avg_completion DESC ORDER BY avg_completion DESC
LIMIT 5; LIMIT 5;