не умеет работать с такими запросами. Кто-нибудь обходил это?
LEFT JOIN user_detail AS user_detail_bc36 ON
user_detail_bc36.id = order.user_id
LEFT JOIN order AS first_order_bc4b ON
first_order_bc4b.user_id = user_detail_bc36.id
and first_order_bc4b.id = (
select
id
from
order
where
user_id = user_detail_bc36.id
order by
created asc
limit 1)
ну тут correlated sub query, такое да, не работает можно попробовать загнать order таблицу в словарь с LAYOUT(DIRECT()) SOURCE(CLICKHOUSE()) и сделать dictGet
а блин .у вас там order by created asc limit 1
Эххх. Облом так облом) Спасибо
можно словарь с CREATE DICTIONARY ... SOURCE(CLICKHOUSE( query 'SELECT user_id AS user_id, argMax(id, created) AS id FROM order GROUP BY user_id') LAYOUT(SSD_CACHE()) и может оно даже взлетит
and first_order_bc4b.id = dictGet('db.dict_name','id', tuple(user_detail_bc36.id))
а не могли бы подсказать, где можно документацию глянуть как создавать словарь из запроса?
Делаете VIEW из запроса, а потом из VIEW Словарь
query $$ CREATE or REPLACE DICTIONARY test_discovered_attribute_dict ( attribute_id UUID, exist UInt8 expression 1 ) PRIMARY KEY attribute_id SOURCE(CLICKHOUSE(query $$ select distinct attribute_id from test_discovered_attribute $$)) LAYOUT(complex_key_hashed()) LIFETIME(MIN 0 MAX 1000);
благодарствую! всё заработало) всё летает)
https://clickhouse.com/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources/
Обсуждают сегодня