diff --git a/dsolovianov/clickhouse/Pet-Project/Этап 2. Создание витринных таблиц.sql b/dsolovianov/clickhouse/Pet-Project/Этап 2. Создание витринных таблиц.sql index e2dc606..8f6e555 100644 --- a/dsolovianov/clickhouse/Pet-Project/Этап 2. Создание витринных таблиц.sql +++ b/dsolovianov/clickhouse/Pet-Project/Этап 2. Создание витринных таблиц.sql @@ -18,6 +18,8 @@ CREATE TABLE dsolovianov.lesson_popularity_summary ON CLUSTER clickhouse_cluster ) 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 TO dsolovianov.lesson_popularity_summary AS @@ -58,7 +60,7 @@ CREATE TABLE dsolovianov.inactive_users_summary ON CLUSTER clickhouse_cluster ( user_id UInt32, name String, email String, - age UInt8, + age UInt32, registered_courses_count UInt32, registration_date Date ) ENGINE = ReplicatedMergeTree( @@ -67,6 +69,8 @@ CREATE TABLE dsolovianov.inactive_users_summary ON CLUSTER clickhouse_cluster ( ) 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 TO dsolovianov.inactive_users_summary 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_course c ON e.course_id = c.course_id GROUP BY e.user_id, u.name, e.course_id, c.title; + +SELECT * FROM dsolovianov.course_completion_rate ORDER BY user_id; + diff --git a/dsolovianov/clickhouse/Pet-Project/Этап 3. Анализ и запросы.sql b/dsolovianov/clickhouse/Pet-Project/Этап 3. Анализ и запросы.sql index 6550e5b..875ee9a 100644 --- a/dsolovianov/clickhouse/Pet-Project/Этап 3. Анализ и запросы.sql +++ b/dsolovianov/clickhouse/Pet-Project/Этап 3. Анализ и запросы.sql @@ -1,21 +1,25 @@ --- Этап 3. Анализ и запросы - Напиши SQL-запросы к витринам -- Напиши свои вариации для практики-- +-- Этап 3. Анализ и запросы - Напиши SQL-запросы к витринам +-- Напиши свои вариации для практики-- + + -- Топ-5 самых просматриваемых уроков SELECT lesson_title, course_title, total_views -FROM lesson_popularity_summary +FROM dsolovianov.lesson_popularity_summary ORDER BY total_views DESC LIMIT 5; + -- Неактивные пользователи, записавшиеся на курсы SELECT name, email, registered_courses_count -FROM inactive_users_summary +FROM dsolovianov.inactive_users_summary WHERE registered_courses_count > 0 ORDER BY registration_date DESC; @@ -24,7 +28,7 @@ ORDER BY registration_date DESC; SELECT course_title, AVG(completion_rate) AS avg_completion -FROM course_completion_rate +FROM dsolovianov.course_completion_rate GROUP BY course_title ORDER BY avg_completion DESC LIMIT 5;