在蜂巢中填充与单行相对应的属性

时间:2019-05-08 22:59:16

标签: sql hadoop hive hiveql

我有两个桌子。我必须为表A(A是驱动程序表)的每一行填充表B中的R_val列。但是在填充R_val时,我必须考虑field_num,field的每种组合的开始日期,结束日期和标志。 例如,从下面的示例中,如果开始日期为01/01/2017,结束日期为NULL,表B中的标志为O(表示打开),则对于表A中的所有行,其开始日期大于B中的start_date和标志= O应该填充相同的R_val 例如,如果表B中有另一个条目,表A中的开始和结束日期与表B中的开始和结束日期在同一范围内,并且状态为C(关闭),则在这种情况下R_val将不同CX。

我尝试根据field_num,field,start_date联接2个表,但最终结果错误,因为日期不一定总是匹配。

以下是与示例field_num,字段组合相同的输入

表A

field_num   field       startdate   end_date    val     qual    ref  flag
XXX112      123456      10/02/2016  12/02/2016  10      IND     PRE     C
XXX112      123456      10/02/2017  12/02/2017  10      IND     PRE     C   
XXX112      123456      05/02/2018  08/02/2018  20      IND     PRE     C
XXX112      123456      01/01/2019  NULL        30      IND     PRE     O

表B

field_num   field       startdate   end_date    val     qual     ref     flag
XXX112      123456      01/01/2017  NULL        RX      NULL      R       O
XXX112      123456      10/02/2016  12/02/2016  CX      NULL      R       C

Expected_Output

field_num   field       startdate   end_date    val     qual    ref  flag   R_val
XXX112      123456      10/02/2016  12/02/2016  10      IND     PRE     C   CX
XXX112      123456      10/02/2017  12/02/2017  10      IND     PRE     C   RX
XXX112      123456      05/02/2018  08/02/2018  20      IND     PRE     C   RX
XXX112      123456      01/01/2019  NULL        30      IND     PRE     O   RX

任何帮助将不胜感激。

0 个答案:

没有答案