сие удивительно и потому уточняю - КХ таки не материализует CTE в памяти ?....
Нет никаких вариантов написать запрос, в котором как то материализовать результат CTE в памяти, и потом обращаться к нему несколько раз?
Ну кроме времянок с Engine=Memory..
Общая задача - написать сложный запрос для отчета в суперсете, который отсканирует 1 раз относительно емкую витрину, свернет ее в небольшую CTE, и потом уже из нее соберет датасет для отчета.
А в чем проблема сделать материлизацию с engine=memory? Пара строчек кода. Какой тут минус?
Ну учётка суперсета по определённым причинам имеет права только на селекты. Ну чтобы сервер аналитики не положили создавая времянки на всю память и тд, как я понимаю
аааа всё понял. вы хотите после того как чарт построен память высвободить. Ну да была бы полезная фича.
Вариант есть через сбор строк в скаляр с помощью groupArray(tuple()) и использованием его
в подобных случаях обычно можно обратиться к админам/разработке за а) ревью вашего запроса б) созданием матвью наконец, можно же подзапросы использовать, запихните ваш мегатяжелый скан в первый подзапрос и алга
Если на уровне етл материализовать это ок, просто требует доп время на разработку, мержи, рефакторинг, а то и перезаливка исторических данных а замечания и предложения по доработке поступают по неск раз в день, вот и прикручиваешь в итоге на уровне отчетного запроса новые фичи/костыли Если через подзапросы то по сути полносью переписать логику придется, то есть рефакторинг. Или можно подзапросы аля как кте использовать как то ?
«вот и прикручиваешь в итоге на уровне отчетного запроса новые фичи/костыли» таких бы я еще больше ограничивал )))
сами себя поди в край ограничили там?)
я в разных проектах в разных ролях. Так что есть где меня ограничивают и есть где я. Но нигде не позволяю себе запросы работающие больше 5-6с, 10 - край.
почему же ничем перенос where на уровень подзапроса до JOIN бывает дает результат
в общем, давайте всем чатом похлопаем вам ) исходный вопрос был немного другой
а вам на него ответили
и я сказал спасибо )
еще сначала group by, потом dictget )
Обсуждают сегодня