вопрос, подсчет ретеншена юзеров; в пг я использовал CTE, чтобы сделать несколько предварительных выборок и посчитать данные уже на их основе, ну то есть
WITH
regs as (SELECT ...),
other as (SELECT * FROM regs where ...)
SELECT ... FROM other ...
в CH я поддержки CTE не нашел, поэтому переписал на временные таблицы, типа
CREATE TEMPORARY TABLE temp_regs (
day Date,
user_id UInt32
);
INSERT INTO temp_regs ...;
SELECT ... FROM ...;
в нативном клиенте это работает, но по хттп запрещены мульти-стейтменты (Syntax error (Multi-statements are not allowed): failed at position 88 (end of query) (line 4, col 6): ;)
без временных таблиц придется дублировать подзапросы и вообще все станет очень нечитаемым. Может есть какой-нибудь в обход?
В HTTP есть сессии, там можно работать с временными таблицами, сначала создаете таблицы отдельными запросами, потом делаете результирующий
Обсуждают сегодня