我的输入数据如下,new MD_flag
是基于md_flag列值的输出列。
sellingseason|item|location|wk|md_flag|New md_flag
Q1-23|BP608WZ271812|LBDI|Mar W5-23|TRUE|TRUE
Q1-23|BP608WZ271812|LBDI|Apr W1-23|TRUE|TRUE
Q1-23|BP608WZ271812|LBDI|Apr W2-23|TRUE|TRUE
Q1-23|BP608WZ271812|LBDI|Apr W3-23|TRUE|TRUE
Q1-23|BP608WZ271812|LBDI|Apr W4-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|May W1-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|May W2-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|May W3-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|May W4-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|Jun W1-23|FALSE|FALSE
Q2-23|BP608WZ271812|LBDI|Jun W2-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|Jun W3-23|NULL|TRUE
Q2-23|BP608WZ271812|LBDI|Jun W4-23|TRUE|TRUE
Q2-23|BP608WZ271812|LBDI|Jun W5-23|NULL|TRUE
Q2-23|BP608WZ271812|LBDI|Jul W1-23|NULL|TRUE
Q2-23|BP608WZ271812|LBDI|Jul W2-23|FALSE|FALSE
Q2-23|BP608WZ271812|LBDI|Jul W3-23|NULL|FALSE
Q2-23|BP608WZ271812|LBDI|Jul W4-23|NULL|FALSE
Q3-23|BP608WZ271812|LBDI|Aug W1-23|NULL|FALSE
Q3-23|BP608WZ271812|LBDI|Aug W2-23|NULL|FALSE
字符串New md_flag
的逻辑是当Md_flag
是Null
时,我们需要填充前一个非空值,直到下一个非空值。
我尝试使用Hive窗口功能,但无法实现所需的逻辑。有人可以帮助我的逻辑。
我在社区中看到类似的帖子,但没有提供正确的答案。How to populate null column values w/ next non-null value
1条答案
按热度按时间bvjveswy1#
您可以使用WINDOW函数
last_value
,其中另一个参数为TRUE
,以忽略null,如下所示:字符串