SQL*Plus, 데이터 연결 방법 – Subquery의 활용: MIN, MAX 값을 가진 row 액세스

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 – 대용량 데이터베이스

Leave a Reply