0

我有两张桌子。表 A 包含 3 列:用户 ID、开始日期和结束日期。带有事件和日期时间戳的表 B。我想根据表 A 将表 B 聚合到开始日期和结束日期之间的日期时间。所以像......

select a.userid, count(distinct b.eventid) as events
from table a
inner join table b
on a.userid=b.userid
and b.datetime between a.starttime and b.endtime
group by a.userid

但是 Hive 不喜欢那样……我正在使用 Hadoop HortonWorks。将不胜感激任何指导!

4

1 回答 1

1

between条件移至2.2.0 之前的版本仅支持 s 中的where相等条件。join

来自 Hive 文档

从 Hive 2.2.0 开始,支持 ON 子句中的复杂表达式(请参阅 HIVE-15211、HIVE-15251)。在此之前,Hive 不支持非相等条件的连接条件。

于 2018-08-21T21:50:56.373 回答