(draft - in progress)
Issue
Style 1 - Dummy Prefix
WHERE TRUE 혹은 AND TRUE 와 같이 Logic에 영향을 주지 않는 Dummy를 추가하여 정렬을 맞추는 방법
SELECT *
FROM base_table
WHERE TRUE QUALITY ROW_NUMBER() OVER (PARTITION BY ... ORDER BY created_dt DESC) = 1
혹은,
SELECT *
FROM base_table
WHERE col1 IS NOT NULL
AND TRUE QUALITY ROW_NUMBER() OVER (PARTITION BY ... ORDER BY created_dt DESC) = 1
Style 2 - Aggregate Function
분석함수(윈도우함수)가 아닌 집계 함수를 이용하여 동일한 결과가 나오도록 코드 구조 변경. 경우에 따라 더 나은 성능을 보이기도 함.
QUALITY ROW_NUMBER() OVER (PARTITION BY ... ORDER BY created_dt DESC) = 1
【Workaround】
ANY_VALUE( .. HAVING MAX )
MAX_BY / MIN_BY
ARRAY_AGG - 정렬조건이 2개 이상인 경우
(TBD)
(draft - in progress)
Issue
QUALIFY절로 끝나는 경우 오른쪽 정렬이 깨지는 문제Style 1 - Dummy Prefix
혹은,
Style 2 - Aggregate Function
【Workaround】
ANY_VALUE( .. HAVING MAX )MAX_BY/MIN_BYARRAY_AGG- 정렬조건이 2개 이상인 경우(TBD)