EXEC :NM := 'AAA';
WITH TEMP AS
(
SELECT '1' AS NO ,'AAA' AS NM, TO_DATE('2020-03-16 09:33:33', 'YYYY-MM-DD HH24:MI:SS') AS FSR_DT FROM DUAL
UNION ALL
SELECT '2' AS NO ,'AAA' AS NM, TO_DATE('2020-03-16 07:10:33', 'YYYY-MM-DD HH24:MI:SS') AS FSR_DT FROM DUAL
UNION ALL
SELECT '3' AS NO ,'CCC' AS NM, TO_DATE('2020-03-16 09:22:33', 'YYYY-MM-DD HH24:MI:SS') AS FSR_DT FROM DUAL
UNION ALL
SELECT '4' AS NO ,'CCC' AS NM, TO_DATE('2020-03-15 09:33:33', 'YYYY-MM-DD HH24:MI:SS') AS FSR_DT FROM DUAL
UNION ALL
SELECT '5' AS NO ,'FFF' AS NM, TO_DATE('2020-03-16 08:33:33', 'YYYY-MM-DD HH24:MI:SS') AS FSR_DT FROM DUAL
)
--1. 서브쿼리에 조인을 이용해서 조회하는경우
SELECT A.*
FROM TEMP A
WHERE NM = 'AAA'
AND FSR_DT = (SELECT MIN(SA.FSR_DT)
FROM TEMP SA
WHERE SA.NM = A.NM)
--2. 변수를 서브쿼리에 넣어서 조회하는경우
--SELECT A.*
-- FROM TEMP A
-- WHERE NM = :NM
-- AND FSR_DT = (SELECT MIN(SA.FSR_DT)
-- FROM TEMP SA
-- WHERE SA.NM = :NM)
위의 샘플데이터와 비슷한식으로 데이터를 조회하려고합니다.
샘플데이터라 운영데이터를 조회 할 경우와는 차이가 발생하겠지만 어느쿼리가 성능에 좀더 좋을지 조언을 얻고자합니다.
감사합니다.