Запросы - Синтаксис (Task 1 and 2) v2
This commit is contained in:
@@ -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 - нет в классическом понимании, а скорее в итеративном смысле.
|
||||
*/
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user