아래는 오라클에서 사용하는 쿼리문입니다.
SELECT RANK ()
OVER (PARTITION BY r_id, o_code
ORDER BY status_cd DESC, c_stnd_ymd DESC, o_code)
AS RANK,
r_id, nh_time, c_stnd_ymd, tunit_code, lg_code,status_cd, o_code
FROM UTZCODE
큐브리드R4.0에 적용하려고 하니 rank() over함수가 없고 rownum을 사용하라고 되어 있던데요
어떻게 적용해야 할지 감이 잡히지 않습니다.
RANK ()
OVER (PARTITION BY 이 부분을 대체 할 수 있는 함수가 있나요?
답변이 늦어 죄송합니다.
말씀하신 쿼리는 아래와 같이 변경하여 사용하시면 됩니다.
하지만 ORDER BY, GROUP BY와 같은 함수가 이용이 되므로 성능적인 문제가 발생할 수 있습니다.
SELECT ROWNUM AS "RANK", B.r_id, B.nh_time, B.c_stnd_ymd, B.tunit_code, B.lg_code, B.status_cd, B.o_code
FROM (SELECT A.r_id, A.nh_time, A.c_stnd_ymd, A.tunit_code, A.lg_code, A.status_cd, A.o_code
FROM (SELECT r_id, nh_time, c_stnd_ymd, tunit_code, lg_code, status_cd, o_code
FROM utzcode
ORDER BY status_cd DESC, c_stnd_ymd DESC, o_code) AS A
GROUP BY A.r_id, A.o_code) as B