homework, pet project DE Dmitry_Medvedev #1

Open
dmitry_medvedev wants to merge 264 commits from md_branch into main
Showing only changes of commit 8c6daac203 - Show all commits
@@ -2,7 +2,7 @@
--! Задача 1 !--
DROP TABLE IF EXISTS users ON CLUSTER clickhouse_cluster;
DROP TABLE IF EXISTS dsolovianov.users ON CLUSTER clickhouse_cluster SYNC;
CREATE TABLE users
ON CLUSTER clickhouse_cluster
@@ -11,8 +11,11 @@ ON CLUSTER clickhouse_cluster
name String,
age UInt8,
country String,
is_active UInt8
) ENGINE = MergeTree()
is_active Boolean
) ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/dsolovianov/users_v2',
'{replica}'
)
ORDER BY user_id;
INSERT INTO users VALUES
@@ -73,6 +76,12 @@ SELECT
FROM users
GROUP BY country;
SELECT
country,
uniqExact(country) as unique_countries --возвращает точное количество уникальных значений в столбце country
FROM users
GROUP BY country;
--Для каждой страны выведи минимальный и максимальный возраст.
SELECT
country,
@@ -90,6 +99,18 @@ FROM users
GROUP BY country
ORDER BY user_country DESC;
--Всё вместе
SELECT
country,
COUNT(*) as user_country,
SUM(is_active) as active_users,
MIN(age) as min_age,
MAX(age) as max_age,
uniqExact(country) as unique_countries
FROM users
GROUP BY country
ORDER BY country;
--! Задача 2 !--
DROP TABLE IF EXISTS dsolovianov.events ON CLUSTER clickhouse_cluster SYNC;
@@ -104,7 +125,7 @@ ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/dsolovianov/events_v2',
'{replica}'
)
ORDER BY user_id;
ORDER BY (user_id, event_time);
INSERT INTO dsolovianov.events (user_id, event_time, event_type) VALUES
(1, '2025-07-17 09:00:00', 'click'),
@@ -220,5 +241,4 @@ ORDER BY re.user_id, re.event_time;
Вопрос: поддерживает ли ClickHouse многоуровневые или рекурсивные CTE?
многоуровневые CTE - да
рекурсивные CTE - нет в классическом понимании, а скорее в итеративном смысле.
*/
*/