我有两个桌子。具有3列的表A:用户ID,开始日期和结束日期。表B带有事件和日期时间戳。我想将表B汇总到基于表A的开始日期和结束日期之间的日期时间。所以类似...
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。不胜感激!
答案 0 :(得分:1)
将between
条件移动到where
,因为在版本2.2.0之前仅支持join
中的相等条件。
从Hive 2.2.0开始,支持ON子句中的复杂表达式(请参阅HIVE-15211,HIVE-15251)。在此之前,Hive不支持不是相等条件的联接条件。