Clickhouse:两个版本之间的行结果差异
Clickhouse: Difference in row results between 2 versions
版本 19.13.3.26 以下查询 returns 1 行:
select -1 as brandidTotal, toDecimal64(Sum(CostpriceSEK),2) as costprice
from mytable
where Stylenumber = 'a row which does not exist'
group by brandidTotal
但是在版本 22.2.2.1 中它 returns 一个空结果(我能理解,因为在哪里找不到任何行)
聚合函数 SUM 的行为似乎发生了变化。 (如果第二列被删除,两者 returns 都是一个空集)
是否可以让 22X 版本像 19x 一样处理它?
--empty_result_for_aggregation_by_constant_keys_on_empty_set
Return empty result when aggregating by constant keys on empty set.
select -1 x, count() from (select 1 yyy where 0) group by x;
0 rows in set. Elapsed: 0.002 sec.
set empty_result_for_aggregation_by_constant_keys_on_empty_set=0;
select -1 x, count() from (select 1 yyy where 0) group by x;
┌──x─┬─count()─┐
│ -1 │ 0 │
└────┴─────────┘
默认为所有人启用它
cat /etc/clickhouse-server/users.d/const_aggr_emp.xml
<?xml version="1.0" ?>
<yandex>
<profiles>
<default>
<empty_result_for_aggregation_by_constant_keys_on_empty_set>0</empty_result_for_aggregation_by_constant_keys_on_empty_set>
</default>
</profiles>
</yandex>
版本 19.13.3.26 以下查询 returns 1 行:
select -1 as brandidTotal, toDecimal64(Sum(CostpriceSEK),2) as costprice
from mytable
where Stylenumber = 'a row which does not exist'
group by brandidTotal
但是在版本 22.2.2.1 中它 returns 一个空结果(我能理解,因为在哪里找不到任何行)
聚合函数 SUM 的行为似乎发生了变化。 (如果第二列被删除,两者 returns 都是一个空集)
是否可以让 22X 版本像 19x 一样处理它?
--empty_result_for_aggregation_by_constant_keys_on_empty_set
Return empty result when aggregating by constant keys on empty set.
select -1 x, count() from (select 1 yyy where 0) group by x;
0 rows in set. Elapsed: 0.002 sec.
set empty_result_for_aggregation_by_constant_keys_on_empty_set=0;
select -1 x, count() from (select 1 yyy where 0) group by x;
┌──x─┬─count()─┐
│ -1 │ 0 │
└────┴─────────┘
默认为所有人启用它
cat /etc/clickhouse-server/users.d/const_aggr_emp.xml
<?xml version="1.0" ?>
<yandex>
<profiles>
<default>
<empty_result_for_aggregation_by_constant_keys_on_empty_set>0</empty_result_for_aggregation_by_constant_keys_on_empty_set>
</default>
</profiles>
</yandex>