CREATE TABLE TEMP
(
DATA1 VARCHAR2(10),
DATA2 VARCHAR2(10),
DATA3 VARCHAR2(10),
DATA4 VARCHAR2(10),
DATA5 VARCHAR2(10),
DATA6 VARCHAR2(10)
)
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '1', '1', '사과 ', '수박');
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '2', '1', '배 ', '수박');
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '3', '1', '바나나', '수박');
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '3', '2', '귤 ', '수박');
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '3', '3', '귤2 ', '수박');
Insert into UMSDB.TEMP (DATA1, DATA2, DATA3, DATA4, DATA5, DATA6) Values ('A', '1', '3', '4', '귤1 ', '수박');
SELECT
A.DATA1,A.DATA2,A.DATA3,
MAX(DECODE(R-R1,0,DATA5))MINOR1,
MAX(DECODE(R-R1,0,DATA6))MINOR2,
MAX(DECODE(R-R1,1,DATA5))MINOR3,
MAX(DECODE(R-R1,1,DATA6))MINOR4,
MAX(DECODE(R-R1,2,DATA5))MINOR5,
MAX(DECODE(R-R1,2,DATA6))MINOR6,
MAX(DECODE(R-R1,3,DATA5))MINOR7,
MAX(DECODE(R-R1,3,DATA6))MINOR8
FROM (SELECT
ROWNUM R, DATA1, DATA2, DATA3, DATA4, DATA5, DATA6
FROM TEMP) A,
(SELECT
MIN(ROWNUM)R1, DATA1, DATA2, DATA3
FROM TEMP GROUP BY DATA1, DATA2, DATA3) B
WHERE A.DATA1 = B.DATA1
AND A.DATA2 = B.DATA2
AND A.DATA3 = B.DATA3
GROUP BY A.DATA1, A.DATA2, A.DATA3
" MAX(DECODE(R-R1,행의수,DATA5))MINOR||행의수 " 를 추가
'Study > Oracle' 카테고리의 다른 글
Oracle : 프로시저(Procedure) 선언및 실행부 문법정리 (0) | 2012.08.06 |
---|---|
오라클 프로시저 처음부터 끝까지 예제 (0) | 2012.08.06 |
Oracle : 시퀀스 생성,조회,삭제 (0) | 2012.07.16 |
Oracle : 테이블 제약조건 확인하기 (0) | 2012.07.16 |
Oracle : 제약 조건(PK, FK, default, unique, check)의 이해 및 실습 (0) | 2012.07.16 |