포스팅 목차
[오라클 TIP] 동일 관측치에서 변수간의 순위(RANK) 구하기(pivot / unpivot / row_number 함수)
동일 관측치 상에서 변수간의 순위를 산출 후 순위를 기준으로 새로운 변수를 생성하는 프로그램 입니다.
개별 학생에 대한 과학,수학,영어,역사 시험에 대한 점수를 정렬 후 순위에 해당하는 과목명과 점수를 산출하는 프로그램.
SAS에서는 배열과 CALL VNAME 함수를 사용하여 구현 가능.
* SAS 참고 프로그램(동일 관측치에서 변수간의 순위(RANK) 구하기 )
: [링크]
WITH BACK AS
( SELECT 'G1' ID, 'Sally' StudentName, 78 Math,85 English,91 History,76 Science FROM DUAL
UNION ALL
SELECT 'G2' ID, 'Edward' StudentName, 87 Math,90 English,82 History,87 Science FROM DUAL
UNION ALL
SELECT 'G3' ID, 'BACK' StudentName, 55 Math,95 English,45 History,85 Science FROM DUAL
)
--SELECT * FROM BACK;
SELECT *
FROM ( SELECT ID,
StudentName,
Course,
Score
,ROW_NUMBER() OVER (PARTITION BY ID ORDER BY SCORE) ROW_RANK
FROM BACK
UNPIVOT
( Score
FOR Course in (Math, English, History, Science)
)
)
PIVOT ( MAX(COURSE) AS COURSE,
MAX(SCORE) AS SCORE
--FOR COURSE IN ('SCIENCE','MATH','ENGLISH','HISTORY')
FOR ROW_RANK IN (1,2,3,4)
);
반응형
'오라클 게시판 > 오라클(Oracle)' 카테고리의 다른 글
온라인 무료 오라클 라이브 SQL (0) | 2021.05.21 |
---|---|
[오라클 Tip] 복수의 with 구문 작성 및 사용 (0) | 2020.05.29 |
5 Data Cleansing Tools (Posted by Patnab) (0) | 2018.11.05 |
정규식 REGEXP_LIKE 함수 사용하기(Oracle 10g) (0) | 2018.10.30 |
[오라클] 테이블 전치 (0) | 2011.01.04 |
댓글