같은 파티션에서 두 가지 분석 함수를 사용하려는 복잡한 SQL 쿼리를 Oracle에 작성했습니다.Oracle 분석 함수 - PARTITION BY 절을 다시 사용하는 방법?
이의 너무 많이 아주 간단하지만하자 다음 PARTITION BY
절을 감안위한 더 우아한 구문
SELECT col1,
MAX(col2) OVER(PARTITION BY col3, col4, col5, col6,
CASE WHEN col7 LIKE 'foo'
THEN SUBSTR(col7,1,5)
ELSE col7
END
ORDER BY col5 ASC, col6 DESC),
MIN(col2) OVER(PARTITION BY col3, col4, col5, col6,
CASE WHEN col7 LIKE 'foo'
THEN SUBSTR(col7,1,5)
ELSE col7
END
ORDER BY col5 ASC, col6 DESC)
FROM my_table;
있습니까?
감사합니다.
사용중인 함수가'MAX'와'MIN'이고'col5'와'col6'도'partition'과'order by'에 있다고 생각하면 각 열에 대한'order by' 절이 나타납니다 중복 될 수 있습니다. –
맞습니다. 그러나 이것은 간단한 예를 들어 의도 한 것이며, LAST_VALUE 또는 다른 분석 일 수 있습니다. – Benoit
[동일한 분할 영역에 다중 창 함수 적용] (http://stackoverflow.com/questions/1896102/applying-multiple-window-functions-on-same-partition)의 중복 가능. 이 복제본은 찾기가 쉽지 않았습니다. – Benoit