반응형
윈도우함수_순위함수
1) RANK
2) DENSE_RANK
3) ROW_NUMBER
1) RANK
- 순위가 같으면 같은 수 만큼 다음 순위를 건너뛴다.
SELECT STUDENT_ID
, STUDENT_NAME
, SUBJECT
, SCORE
, RANK()OVER(ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
컬럼에 정렬을 지정할 시 해당 컬럼 값에 NULL값이 있는 경우 NULL(무한의값)은 최대값으로 인식한다.
SELECT STUDENT_ID
, STUDENT_NAME
, CLASS
, SUBJECT
, SCORE
, RANK()OVER(PARTITION BY CLASS ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
CLASS별 점수를 내림차순한 순위를 구했다.
2) DENSE_RANK
- 순위가 여러개가 같아도 바로 다움 순위의 값을 보여준다.
SELECT STUDENT_ID
, STUDENT_NAME
, SUBJECT
, SCORE
, DENSE_RANK()OVER(ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
SELECT STUDENT_ID
, STUDENT_NAME
, CLASS
, SUBJECT
, SCORE
, DENSE_RANK()OVER(PARTITION BY CLASS ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
3) ROW_NUMBER
- 같은 순위없이 차례대로 순위를 나열한다.
SELECT STUDENT_ID
, STUDENT_NAME
, SUBJECT
, SCORE
, ROW_NUMBER()OVER(ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
SELECT STUDENT_ID
, STUDENT_NAME
, CLASS
, SUBJECT
, SCORE
, ROW_NUMBER()OVER(PARTITION BY CLASS ORDER BY SCORE DESC) AS RANK
FROM SCHOOL
;
윈도우함수 중 순위함수에 대해 알아보았다.
세개의 함수 명칭이 달라서 헷갈릴 일은 없겠지만
한 동안 쓰지 않으면 헷갈릴 수 있으니 복습차 포스팅해본다:)
혹시나 테이블/데이터 생성이 힘든사람을 위해 별거 아니지만
sql문을 첨부파일로 올려놓겠다.
반응형
'개발농장 > DataBase' 카테고리의 다른 글
[데이터모델링] 엔터티(Entity), 인스턴스(Row), 속성(Attribute) | SQLD (0) | 2023.03.05 |
---|---|
[데이터베이스 모델링] 데이터베이스 모델링 | 스키마 구조에 대해 알아보자 | SQLD (0) | 2023.02.26 |
[오라클sql] 그룹함수 | ROLLUP, CUBE, GROUPING SETS, GROUPING 에 대해 알아보자! (0) | 2023.02.20 |
sqlDeveloper 설치하기 | DB연결하기 (0) | 2023.02.15 |
오라클 11g XE 무료버전 설치하기 (0) | 2023.02.12 |
댓글