--task 1 create table mdrozdov.products ( product_id Int, name String ) engine = MergeTree order by product_id insert into mdrozdov.products values (101, 'iPhone 14'), (102, 'Galaxy S22'), (103, 'Pixel 7') create table mdrozdov.prices ( product_id Int, price Int, region String ) engine = MergeTree order by product_id insert into mdrozdov.prices values (101, 999, 'US'), (101, 1049, 'EU'), (102, 850, 'US'), (102, 899, 'CA'), (103, 799, 'JP') -- 1) select product_id, name, price, region from mdrozdov.products any left join mdrozdov.prices on mdrozdov.products.product_id = mdrozdov.prices.product_id -- 2) create table mdrozdov.ticks ON CLUSTER clickhouse_cluster ( time DateTime, symbol String, price Decimal(10, 2) ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/ticks', '{replica}' ) order by (time, symbol) insert into mdrozdov.ticks values ('2025-07-17 10:00:00', 'AAPL', 190.5), ('2025-07-17 10:01:00', 'AAPL', 191.2), ('2025-07-17 10:02:30', 'AAPL', 192.0), ('2025-07-17 10:05:00', 'GOOG', 2850.0) create table mdrozdov.orders ON CLUSTER clickhouse_cluster ( time DateTime, symbol String, size Int ) engine = ReplicatedMergeTree( '/clickhouse/tables/{shard}/mdrozdov/orders', '{replica}' ) order by size insert into mdrozdov.orders values ('2025-07-17 10:00:30', 'AAPL', 50), ('2025-07-17 10:02:00', 'AAPL', 75), ('2025-07-17 10:03:00', 'AAPL', 20), ('2025-07-17 10:04:00', 'GOOG', 15) select o.time, o.symbol, t.price as last_price from mdrozdov.orders o asof join mdrozdov.ticks t on o.symbol = t.symbol and o.time >= t.time -- task 3 select user_id, name from users where user_id in ( select user_id from payments where amount > 1000 ) -- task 4 select bl.user_id, u.name, bl.event_time, bl.event_type, from big_logs bl any left join users u using(user_id)