селекта сделать - в одном использовать результаты другого, вида:
user_id in (select ... from ...)
Можно ли сделать что-то вида
$users = (select ... from ...)
user_id in $users...
что-то такое
https://clickhouse.tech/docs/en/sql-reference/statements/select/with/
Что-то не работает :( Делаю так: WITH users_logins as ( SELECT login FROM events WHERE date BETWEEN (toDate('2021-02-08') and toDate('2021-02-08')) and event_id = 111 ) select count(*) from users_logins Пишет: DB::Exception: Syntax error: failed at position 24 ('(') (line 3, col 22): ( SELECT login FROM events WHERE EventDate BETWEEN (toDate('2021-02-08') and toDate('2021-02-08')) and event_id = 1. Expected identifier
clickhouse какой версии? CTE через WITH недавно подвезли
оно то ли в 20.10 то ли в 20.11 приехало. раньше был выбор версии в хелпе, сейчас куда то пропал...
А как до этого люди делали запросы, в которых надо было провязать данные из двух селектов по сути? Никак?)
что значит привязать данные из двух селектов? в смысле сдалть JOIN по результатам двух sub query ?
У меня есть табличка с событиями. Я хочу посчитать воронку вида "какой процент пользователей, которые до этого тыкнули в определенную кнопку, сделали потом что-то". То есть в обычном мире я бы либо поселектил в переменную пользователей, которые тыкнули в кнопку, а потом поселектил всех пользователей, сделавших что-то и входящих в этот список (переменную), либо сделал в where условие вида user in (select from)
возможно, мой комментарий вряд ли пригодится, но емнип, тут или 1) действительно вам сделать join по подзапросу, 2) как вариант, то что вы указали в своем оригинальном сообщении, сделать на базе tmp по таблице тыкнувших пользователей. (изумдриться, но такой себе вывод) Но JOIN или WITH звучит как-то разумнее, как сказал @BloodJazMan , ИМХО. 😅
https://clickhouse.tech/docs/en/sql-reference/aggregate-functions/parametric-functions/
А чем плох select where userId in (select ...)?
Обсуждают сегодня