2013-07-09 80 views
3

我正在將Teradata轉換爲Hive(版本0.10.0)。在配置單元中使用QUALIFY Row_Number

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 

我做搜索和在蜂巢中發現UDF的Row_Sequence。我還用分配全部和排序依據替換了分區。但我對QUALIFY堅持不懈。

任何將上述轉換爲配置單元的想法都非常感謝,並且會對我們有所幫助。

回答

5

具有分析函數(ROW_NUMBER(),SUM(),COUNT(),... over(partition by ...))的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 

NB:解析函數可在蜂房0.12