微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用条件之间连接 ClickHouse 中的表

如何解决使用条件之间连接 ClickHouse 中的表

我发现 ClickHouse 中的 join 仅支持相等表达式。 但是我需要在 ClickHouse 中加入两个具有“介于”条件的大表。

如何实现这个逻辑?

select a.*,b.name
from a
join b
  on a.id = b.id
  and a.start_dt between b.start_dt and b.end_dt;

出错

代码:403,e.displayText() = DB::Exception:JOIN ON 的表达式无效。预期等于表达式...

解决方法

试试这个:

select a.*,b_name
from (
  select a.*,b.name AS b_name,b.start_dt AS b_start_dt,b.end_dt AS b_end_dt
  from a join b using id
  where a.start_dt between b_start_dt and b_end_dt
  )

查看 Clickhouse join with condition 中的一些 JOIN 细节。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。