我有以下数据
Policy_Name IssueYear ExpiryYearA 2001 2003B 2003 2006
Policy_Name IssueYear ExpiryYear
A 2001 2003
B 2003 2006
我需要如下输出:
Policy_Name ActiveYearA 2001A 2002A 2003B 2003B 2004 B 2005B 2006
Policy_Name ActiveYear
A 2001
A 2002
A 2003
B 2003
B 2004
B 2005
B 2006
mwg9r5ms1#
select t.Policy_Name ,t.IssueYear + pe.i as ActiveYearfrom mytable t lateral view posexplode (split (space (ExpiryYear - IssueYear),' ')) pe as i,x;
select t.Policy_Name
,t.IssueYear + pe.i as ActiveYear
from mytable t
lateral view posexplode (split (space (ExpiryYear - IssueYear),' ')) pe as i,x
;
+---------------+------------+| t.policy_name | activeyear |+---------------+------------+| A | 2001 || A | 2002 || A | 2003 || B | 2003 || B | 2004 || B | 2005 || B | 2006 |+---------------+------------+
+---------------+------------+
| t.policy_name | activeyear |
| A | 2001 |
| A | 2002 |
| A | 2003 |
| B | 2003 |
| B | 2004 |
| B | 2005 |
| B | 2006 |
1条答案
按热度按时间mwg9r5ms1#