diff --git a/dsolovianov/clickhouse/Homework/Запросы - JOIN.sql b/dsolovianov/clickhouse/Homework/Запросы - JOIN.sql index 29496d9..6d6edfa 100644 --- a/dsolovianov/clickhouse/Homework/Запросы - JOIN.sql +++ b/dsolovianov/clickhouse/Homework/Запросы - JOIN.sql @@ -4,7 +4,7 @@ DROP TABLE IF EXISTS dsolovianov.products ON CLUSTER clickhouse_cluster SYNC; DROP TABLE IF EXISTS dsolovianov.prices ON CLUSTER clickhouse_cluster SYNC; -CREATE TABLE products +CREATE TABLE dsolovianov.products ON CLUSTER clickhouse_cluster ( product_id UInt32, @@ -16,12 +16,12 @@ ON CLUSTER clickhouse_cluster ORDER BY product_id; -INSERT INTO products VALUES +INSERT INTO dsolovianov.products VALUES (101, 'iPhone 14'), (102, 'Galaxy S22'), (103, 'Pixel 7'); -CREATE TABLE prices +CREATE TABLE dsolovianov.prices ON CLUSTER clickhouse_cluster ( product_id UInt32, @@ -33,7 +33,7 @@ ON CLUSTER clickhouse_cluster ) ORDER BY product_id; -INSERT INTO prices VALUES +INSERT INTO dsolovianov.prices VALUES (101, 999, 'US'), (101, 1049, 'EU'), (102, 850, 'US'), @@ -48,8 +48,8 @@ SELECT p.name, pr.price, pr.region -FROM products AS p -ANY LEFT JOIN prices AS pr ON p.product_id = pr.product_id; +FROM dsolovianov.products AS p +ANY LEFT JOIN dsolovianov.prices AS pr ON p.product_id = pr.product_id; --№2 Что будет, если в таблице `prices` несколько цен на один `product_id`? @@ -62,8 +62,8 @@ SELECT p.name, pr.price, pr.region -FROM products AS p -ALL LEFT JOIN prices AS pr ON p.product_id = pr.product_id; +FROM dsolovianov.products AS p +ALL LEFT JOIN dsolovianov.prices AS pr ON p.product_id = pr.product_id; /* `ALL LEFT JOIN` в Clickhouse ведет себя также, как LEFT JOIN в SQL, то есть собирает все совпадения. Начинается перегон данных между таблицами. Из-за этого растет нагрузка на ОЗУ и CPU.