【问题标题】:Wrapping an analytical function in another function in Hive 0.11在 Hive 0.11 中将分析函数包装在另一个函数中
【发布时间】:2013-05-24 15:08:37
【问题描述】:

我正在尝试以下方法:

选择 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。

【问题讨论】:

    标签: hive hiveql


    【解决方案1】:

    不确定这是您问题的根源,但您的查询似乎缺少 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-23
      • 2021-02-24
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      相关资源
      最近更新 更多