1

我在分布式表上测试查询时遇到了问题。

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 的限制?非常感谢。

4

0 回答 0