在Hive 0.11的另一个函数中包装分析函数

时间:2013-05-29 11:19:01

标签: hive hiveql

我正在尝试以下方法:

  

选择ta_end_datetime_berekenen ='Y'然后超前(ta_update_datetime)的分区(由dn_waarde_van分区,按ta_update_datetime分组dn_waarde_tot)否则ea_end_datetime结束ea_end_datetime,ta_insert_datetime,ta_update_datetime来自tmp_wtdh_bestedingsklasse_10_s2_stap2

然而,当我尝试时,我收到以下错误:

  

NoViableAltException(86 @ [129:7:(((KW_AS)?标识符)|(KW_AS LPAREN标识符(COMMA标识符)* RPAREN))?])

     

失败:ParseException第1行:175在选择目标中'''附近的'over'处丢失KW_END   第1:254行无法识别选择目标中'else''ea_end_datetime''end'附近的输入

假设不可能将分析函数包装在另一个函数中,我是否正确?

这是与Hive 0.11。

1 个答案:

答案 0 :(得分:2)

不确定这是您问题的根源,但似乎您的查询缺少AS关键字(请注意下面第8行的全部大写AS)。

select 
    case 
        when ta_end_datetime_berekenen = 'Y' 
    then 
        lead(ta_update_datetime) over ( partition by dn_waarde_van, dn_waarde_tot order by ta_update_datetime ) 
    else 
        ea_end_datetime 
    end AS ea_end_datetime, 
    ta_insert_datetime, 
    ta_update_datetime 
from tmp_wtdh_bestedingsklasse_10_s2_stap2