连接两个日期范围

pinkon5k  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(273)

我有两个表格如下(日期格式:yyyy-mm-dd)。我想要的是根据表a和表b的开始时间和结束时间来记录它们之间的连接历史
p、 我忘了澄清我下面给出的例子并不详尽。在实际情况中,有3种可能性:(a)在时间t时,层次结构发生变化,但主管不发生变化(b)在时间t时,主管发生变化,但层次结构不发生变化(c)两者同时发生变化。
1) 表a-层次结构

+--------------+------------+------------+
| hierarchy    |  startime  |  endtime   |
+--------------+------------+------------+
| Value 1      | 2017-01-01 | 2017-03-01 |
| Value 2      | 2017-03-01 | 2017-04-01 |
| Value 3      | 2017-04-01 | NULL       |
+--------------+------------+------------+

2) 表b-主管

+--------------+------------+------------+
|  supervisor  |  startime  |  endtime   |
+--------------+------------+------------+
| supervisor 1 | 2017-01-01 | 2017-02-01 |
| supervisor 2 | 2017-03-01 | NULL       |
+--------------+------------+------------+

3) 结果表

+-----------+--------------+------------+------------+
| hierarchy |  supervisor  |  startime  |  endtime   |
+-----------+--------------+------------+------------+
| Value 1   | supervisor 1 | 2017-01-01 | 2017-02-01 |
| Value 1   | NULL         | 2017-02-01 | 2017-03-01 |
| Value 2   | supervisor 2 | 2017-03-01 | 2017-04-01 |
| Value 3   | supervisor 2 | 2017-04-01 | NULL       |
+-----------+--------------+------------+------------+

有人知道如何在impala/sql中做到这一点吗??非常感谢!:)

fkaflof6

fkaflof61#

这也许对你有帮助。

select a.hierarchy ,b.supervisor  ,a.startime  ,a.endtime  from TableA a inner join TableB b on a.startime  =b.startime and 
    a.endtime=b.endtime

相关问题