task up to arrays
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
--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)
|
||||
Reference in New Issue
Block a user