by papamama [Tibero] row_number [2020.10.07 05:05:06]
tibero DB를 마이그레이션 하면서
로컬 DB에서 이용하던 쿼리문을 db*link를 통하여 데이터를 조회하게 되었습니다.
그런데 DB*link 이용시에는 ROW_NUMBER() OVER (PARTITION...) 분석 함수를 이용할 수 없다고 에러가 올라옵니다.
MAX(CASE WHEN (ROW_NUMBER() OVER (PARTITION BY QB_012."
^; nested exception is java.sql.SQLException: JDBC-12126:Database link client API error - Analytic function cannot be used in this clause
쿼리문 요약
--
SELECT DATA.KEY_ID, MAX(DECODE(DATA.RN, 1, DATA.컬럼명, NULL)) AS <alias명>, .....
FROM (
b.key_id, ....,
ROW_NUMBER() OVER (PARTITION BY F.FLIGHT_PK ORDER BY F.FLIGHT_PK, G.VIA_NUM) RN
FROM <table a>, <table b>
WHERE clause
) DATA
GROUP BY DATA.key_id
최종목적은 ROW_NUMBER() 이용하듯이 서브그룹별 순번값을 구하고자 함입니다.
a 1
a 2
a 3
b 1
c 1
d 1 이런 식으로