我正在尝试以下方法:
选择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。
答案 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