我有两张表。我为每个日期和类别对在 表2 我想计算从当天开始计算的该类别过去一周和两周的记录数。
表1
| DATE |Category |
|--------------|---------|
|2018-10-01 |ABC1 |
|2018-10-03 |ABC1 |
|2018-10-05 |ABC2 |
|2018-10-07 |ABC1 |
|2018-10-08 |ABC1 |
|2018-10-11 |ABC2 |
|2018-10-16 |ABC1 |
|2018-10-19 |ABC2 |
|2018-10-20 |ABC1 |
|2018-10-22 |ABC2 |
|2018-10-30 |ABC1 |
表2
| Category |DATE |
|--------------|---------------|
|ABC1 |2018-10-30 |
|ABC2 |2018-10-24 |
|ABC1 |2018-10-23 |
|ABC2 |2018-10-21 |
最终结果应该是这样的
| Category |DATE |past_week | past_2_weeks |
|--------------|---------------|-----------|---------------|
|ABC1 |2018-10-30 |1 |3 |
|ABC2 |2018-10-24 |1 |1 |
|ABC1 |2018-10-23 |2 |2 |
|ABC2 |2018-10-21 |1 |1 |
我知道在SQL中可以使用相关的内联子查询来实现,但是hive没有这个功能。有什么优化的方法吗?
注 数据集非常大,例如,表1有超过500000行,表2有大约20000行。还有许多其他类别也可以使用(约160个)。我只想向你展示这些表的样子。