안녕하세요?
아래 데이터에 대한 조회 쿼리 작성중인데 질문 드립니다.
1. 테이블 명 및 컬럼구조
테이블명 : EXAM
STUDENT YEAR_YM SCORE
홍길동 2015 90
홍길동 2016 85
홍길동 2017 87
홍길동 2018 96
홍길동 2019 91
2. 조회하고 싶은 양식(전년도, 전년도 점수, 차년도, 차년도 점수)
STUDENT BF_YEAR_YM BF_SCORE AF_YEAR_YM AF_SCORE
홍길동 2015 90 2016 85
홍길동 2016 85 2017 87
홍길동 2017 87 2018 96
홍길동 2018 96 2019 91
홍길동 2019 91
3. 작성한 쿼리
SELECT C.STUDENT
, C.BF_YEAR_YM
, C.BF_SCORE
, D.AF_YEAR_YM
, D.AF_SCORE
FROM ( SELECT A.STUDENT
, A.YEAR_YM BF_YEAR_YM
, A.SCORE BF_SCORE
, ROW_NUMBER() OVER(PARTITION BY A.STUDENT ORDER BY A.YEAR_YM) RN
FROM EXAM A
) C
, ( SELECT B.STUDENT
, B.YEAR_YM AF_YEAR_YM
, B.SCORE AF_SCORE
, ROW_NUMBER() OVER(PARTITION BY B.STUDENT ORDER BY B.YEAR_YM) - 1 RN
FROM EXAM B
) D
WHERE C.STUDENT = D.STUDENT
AND C.RN = D.RN
row_number로 조인하도록 3번 쿼리를 작성해 봤고 원하는 양식으로 결과가 나오긴 하지만
더 간단하거나 효율적인 작성 방법이 있을지 가르침 부탁드립니다. ㅜ,.ㅠ
감사합니다.