首页 > 解决方案 > Hive:在特定行中添加具有重复特定列的值的列?

问题描述

我在 Hive 中有一张看起来像这样的表,名为Products.

'Root Product | Product | Date 
     A            A       2012
     A            B       2013
     A            C       2013 
     D            D       2014 
     D            E       2015

是否可以添加第四列,重复列中存在的日期值DateRoot Product == Product根产品的日期)?这样

'Root Product | Product | Date | Root Date
     A            A       2012     2012
     A            B       2013     2012
     A            C       2013     2012
     D            D       2014     2014
     D            E       2015     2014

标签: hivehiveql

解决方案


使用max窗口函数。

select root_product
      ,product
      ,date
      ,max(case when root_product = product then date end) over(partition by root_product) as root_date
from tbl

推荐阅读