728x90
300x250
쿼리에서
그룹핑한 후 순위를 매기고 싶은데..
함수가 따로 없을까..?
SELECT RANK() OVER(PARTITION BY 컬럼 ORDER BY 컬럼)
FROM 테이블
- PARTITION BY 컬럼 : 컬럼을 기준으로 그룹핑
- ORDER BY 컬럼 : 컬럼을 기준으로 정렬
- RANK() : 행마다 순위를 매김
- OVER : 지시어, SELECT구 또는 ORDER BY 구에서 사용 가능
분석함수?
- 집계 결과를 각 행마다 보여줌.
- SELECT 구 또는 ORDER BY 구문에서만 사용 가능
cf)
ROW_NUMBER() OVER(PARTITION BY 컬럼 ORDER BY 컬럼) : 1등이 2명이어도 1등,2등으로 나눔.
RANK()는 1등이 2명이면 그 다음 순위는 3등으로 매김.
728x90
반응형
'프로그래밍 > oracle' 카테고리의 다른 글
[oracle] 최대값/최소값 행 가져오는 방법 비교 사용법 GREATEST/LEAST vs MAX/MIN sql 차이점 (14) | 2023.03.02 |
---|---|
[oracle] 테이블이 아닌 뷰(view)를 사용하는 이유와 장점과 단점 생성,수정,삭제,조회,구조 확인 (12) | 2023.01.27 |
[oracle] EXISTS 와 IN 함수 서브쿼리 사용법 비교해보자! (8) | 2023.01.18 |
댓글