记录一下:ClickHouse中如果使用了replacing merge tree表引擎,在使用含有final关键词的SQL语句查询时,如果父查询中where条件中存在对partition字段的过滤条件,enable_optimize_predicate_expression_to_final_subquery这个setting会对查询结果造成影响,优化器会自动将partition条件由父查询提前到子查询执行,提前通过子查询过滤掉partition数据行
默认enable_optimize_predicate_expression_to_final_subquery设置为1,也就是enable,可以通过
set global on cluster default enable_optimize_predicate_expression_to_final_subquery=0;
置为disable。
查询settings状态:
SELECT * FROM system.settings
where name like '%final%subquery';
ClickHouse版本:20.8