в ходе выполнения вот такого запроса сначала применяется внешний фильтр col1 = 'val1', а только потом идет применение оконки и тп, хотя казалось бы сначала должен выполняться внутренний запрос, а потом результат внутреннего запроса должен фильтроваться:
with cte as (
with wf as any(value) over (partition by col2 order by ts rows between 1 preceding and 1 preceding)
select
col1,
col2,
wf
from t
)
select
*
from cte
where col1 = 'val1';
и как это пофиксить?
Попробуйте добавить settings optimize_move_to_prewhere = 0
Обсуждают сегодня