我正在将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中提供了分析功能