2011년 6월 1일 수요일

행을 열로 확장

코드 테이블인 CO001T의 데이터 구조
Major
Minor
영업
가마니
영업
나오미
영업
마동탁
물류
사시미
물류
아사달
회계
자몽돌
회계
차이나
회계
카이로
전산
파김치


∴ 결과 집합
MAJOR
MINOR1
MINOR2
MINOR3
물류
사시미
아사달
영업
가마니
나오미
마동탁
전산
파김치
회계
자몽돌
차이나
카이로


∴ 문제
위 테이블의 데이터를 참조하여 결과집합을 구하는 SQL을 작성하시오. CO001T는 코드 테이블로 하나의 MAJOR 코드에 대하여 최대 3개의 MINOR 코드를 가질 수 있다.우리는 보고자 하는 것은 각 MAJOR 코드에 대하여 MINOR 코드 를 가로로 정렬하여 보고자 한다. 이때 MINOR 코드가 3개가 아닌 경우에 나머지는 공백으로 둔다.
테이블 생성 스크립트
CREATE TABLE CO001T (
MAJOR VARCHAR2 (6),
MINOR VARCHAR2 (10))
TABLESPACE ENCDATA
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 40960
NEXT 40960
PCTINCREASE 50
MINEXTENTS 1
MAXEXTENTS 505
FREELISTS 1 FREELIST GROUPS 1 )
NOCACHE;

해결 쿼리
SELECT
A.MAJOR,
MAX(DECODE(R-R1,0,MINOR))MINOR1,
MAX(DECODE(R-R1,1,MINOR))MINOR2,
MAX(DECODE(R-R1,2,MINOR))MINOR3
FROM (SELECT ROWNUM R,
MAJOR, MINOR
FROM C0001T)A,
(SELECT MIN(ROWNUM)R1,MAJOR
FROM C0001T group by major)B
WHERE A.MAJOR = B.MAJOR
GROUP BY A.MAJOR

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...