我在分布式表上测试查询时遇到了问题。
SQL是这样的:
select distinct OriginCityName from on_time.ontime_all t where t."OriginStateName" = 'California'
'on_time.ontime_all' 是一个分布式表,包含 OriginCityName、OriginStateName 等列。和错误:
Received exception from server (version 1.1.54381):
Code: 171. DB::Exception: Received from localhost:9000, ::1. DB::Exception: Block structure mismatch in UNION stream: different number of columns:
OriginCityName String String(size = 0)
OriginCityName String String(size = 0), OriginStateName String String(size = 0).
0 rows in set. Elapsed: 0.186 sec.
但是,如果我对 SQL 执行以下操作之一,错误就会消失:
- 删除不同的
- 删除 where 子句
- 用 prewhere 替换 where
- 将 where 子句中的“OriginStateName”列也添加到选择部分
- 将选择部分更改为
select distinct *
这种 SQL 对我的应用程序很重要,所以有人可以帮我解决这个问题吗?这是一个错误还是 ClickHouse 的限制?非常感谢。