我正在将Teradata转换为Hive(版本0.10.0)。

Teradata查询:

QUALIFY ROW_NUMBER() OVER (PARTITION BY ADJSTMNT,SRC_CMN , TYPE_CMD,IOD_TYPE_CD,ROE_PST ,ORDR_SYC,SOR_CD,PROS_ED ORDER BY ADJSTMNT )=1


我进行了搜索,并在蜂巢中找到了Row_Sequence的UDF。我还用“全部分发”和“排序依据”替换了“过度分区”。但是我坚持使用“合格”。

任何将以上内容转换为配置单元的想法都将受到赞赏,这将对我们有很大帮助。

最佳答案

具有分析功能(ROW_NUMBER(),SUM(),COUNT(),...(按...划分))的QUALIFY只是包含分析值的子查询的WHERE。

例如:

select A,B,C
from X
QUALIFY  ROW_NUMBER() over (...) = 1


等效于:

select A,B,C
from (
   select A,B,C, ROW_NUMBER() over (...) as RNUM
   from X
) t
where RNUM = 1


注意:Hive 0.12中提供了分析功能

08-27 06:09