반응형
1. ROW_NUMBER 함수 : ROW_NUMBER() OVER(PARTITION BY _ ORDER BY _)
PATITION 으로 컬럼을 그룹핑하고 정렬하여 순번을 지정해 주는 함수이다
- 사용법
ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼] [ASC/DESC])
2. 특정 컬럼 기준으로 하나의 행만 추출하기
- 테이블 구성
- 각 구매 내역(BUY_NAME) 별 최근 날짜 내역 조회 쿼리
SELECT
BUY_NAME
,BUY_PRICE
,BUY_DATE
FROM(
-- 1) ROW_NUMBER 사용하여 구매내역별 일자 내림차순으로 순번 지정
SELECT
BUY_NAME
,BUY_PRICE
,BUY_DATE
,ROW_NUMBER() OVER(PARTITION BY BUY_NAME ORDER BY BUY_DATE DESC) AS RN
FROM BUY_TABLE
-- 1) END
)
WHERE RN = 1 -- 2) RN 이 1인, 순번이 1번인 행만 조회
ORDER BY BUY_NAME
- SQL 설명
1) 구매 사용처(BUY_NAME) 별 그룹핑하여, 구매 일자(BUY_DATE)가 최근인 순서로 순번(RN)을 지정한다.
- 1) 의 결과
2) 위의 결과에서 RN 이 1인 행만 가져온다.
- 최종 결과
반응형
'DB > ORACLE' 카테고리의 다른 글
[ORACLE] 주말과 공휴일 제외한 근무일(평일) 날짜 구하기(CONNECT BY LEVEL) (1) | 2022.09.20 |
---|---|
[ORACLE] ORDER BY 와 ROWNUM 함께 사용시 유의사항 (0) | 2022.05.03 |
[ORACLE] INSERT시 컬럼 SEQ 증가 (NVL(MAX(SEQ),0) + 1) (0) | 2022.04.18 |
[ORACLE] WHERE절에 IN 사용 (0) | 2022.04.04 |
[ORACLE] 전체 테이블 조회, 코멘트 조회 (0) | 2022.03.30 |
댓글