IT/DB

Teradata - QUALIFY ROW_NUMBER()

조병희 2014. 9. 2. 10:40

SQL 을 작성하다보면 최근값을 가져오기 위해

SELECT * FROM TAB1
WHERE SEQNO = (SELECT MAX(SEQNO) FROM TAB2 WHERE T1.SEQNO = T2.SEQNO);

형태로 가져올 때가 있다.

이 때 QUALIFY ROW_NUMBER()을 유용하게 사용할 수 있다.

예시)
SELECT
PID, ORDDD, SEQ, COL1
FROM TAB1
QUALIFY ROW_NUMBER() OVER(PARTITION BY PID, ORDDD ORDER BY SEQ DESC ) = 1;

설명: PID, ORDDD 별로 SEQ 를 정렬하여 1개 값을 가져 오기