SQL*Plus, 데이터 연결 방법 – Subquery의 활용: MIN, MAX 값을 가진 row 액세스
/** * 수정전 */ SELECT 종목 , 고객번호 , 변경회차 , 변경일 , 금액 FROM 변경내역 x WHERE 변경회차 = ( SELECT MAX(y.변경회차) FROM 변경내역 y WHERE y.고객번호 = x.고객번호 AND y.변경일 LIKE '199807%' ) AND 종목 = '15' AND 변경일 LIKE '199807%';
/** * 수정후 */ SELECT '15' 종목 , 고객번호 , substr(VAL,1,3) 변경회차 , substr(VAL,4,8) 변경일 , substr(VAL,12,15) 금액 FROM ( SELECT 고객번호 , MAX(RPAD(변경회차,3)||변경일||금액) VAL FROM 변경내역 WHERE 종목 = '15' AND 변경일 LIKE '199807%' GROUP BY 고객번호 );
원문 출처
Encore – 대용량 데이터베이스