我有两个表格如下(日期格式: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中做到这一点吗??非常感谢!:)
1条答案
按热度按时间fkaflof61#
这也许对你有帮助。