我正在使用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
我进行了搜索,并在hive中找到了Row_Sequence的UDF。我还用Distribute All替换Over Partition并排序依据。但我坚持QUALIFY。
将上述内容转换为hive的任何想法都非常感谢,对我们有很大帮助。
答案 0 :(得分:6)
带有分析功能的QUALIFY(ROW_NUMBER(),SUM(),COUNT(),... over(partition by ...))只是包含分析值的子查询的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中可用