From c2eacd2bde15422c0d22d6950e3c00e72ec2f226 Mon Sep 17 00:00:00 2001 From: Bonifatsiy Date: Mon, 18 May 2026 19:55:26 +0400 Subject: [PATCH] =?UTF-8?q?1.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=81=D0=BE=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BB=D1=8E=D1=87=20=D0=B4=D0=BB=D1=8F=20course=5Fcompletion?= =?UTF-8?q?=5Frate,=20=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20DROP=20TABLE?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D1=8C=D1=8E=D1=85,=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20age=20UInt8=20=D0=BD?= =?UTF-8?q?=D0=B0=20UInt32=202.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=81=D1=85=D0=B5=D0=BC=D1=8B=20=D0=B2=20=D0=AD=D1=82?= =?UTF-8?q?=D0=B0=D0=BF=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Этап 2. Создание витринных таблиц.sql | 9 ++++++++- .../Pet-Project/Этап 3. Анализ и запросы.sql | 12 ++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) 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;