[SQL] 순위함수

·2024년 4월 7일
0

study

목록 보기
81/81
post-thumbnail

순위함수(분석함수)

결과에 순번, 순위를 매기는 함수
PARTITION BY : 동일 그룹으로 묶어줄 칼럼 명 지정
ORDER BY : Partition 정의에 지정된 컬럼에 대한 정렬 수행

SELECT
<순위함수이름> (arguments)
OVER ([PARTITION BY <partion_by_list>]
ORDER BY <order_by_list>)
FROM 테이블명;

RANK()

RANK() : 순위 값 중 동등 순위 번호는 같게 나오고 그 다음 순위를 다음 번호를 뺀 그 다음 값을 출력

NTILE()

PARTITION을 지정된 수 만큼의 등급으로 나누어 각 등급 번호를 출력

프로그래머스 - 대장균의 크기에 따라 분류하기 2

SELECT ID, 
(CASE
  WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 1 THEN 'LOW'
  WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 2 THEN 'MEDIUM'
  WHEN NTILE(4) OVER (ORDER BY SIZE_OF_COLONY) = 3 THEN 'HIGH'
  ELSE 'CRITICAL' END) AS COLONY_NAME
FROM ECOLI_DATA
ORDER BY ID;

DENSE_RANK()

DENSE_RANK() : 순위 값 중 동등 순위 번호는 같게 나오고 그 다음 순위를 다음 번호로 출력

ROW_NUMBER()

ROW_NUMBER() : 동등 순위를 인식하지 않고 매번증가되는 번호를 출력

LEAD() / LAG()

LEAD(expr [,offset][,default]) / LAG() : 지정된 칼럼의 이전, 이후의 행 값을 출력

FIRST_VALUE() / LAST_VALUE()

FIRST_VALUE() / LAST_VALUE() : 각 그룹별 첫 번째와 마지막값 하나만출력

CUME_DIST()

CUME_DIST() : 주어진 그룹에 대한 상대적인 누적분포도 값을 반환한다.
분포도 값(비율)이므로 반환 값의 범위는 0 초과 1이하 사이의 값을 반환한다.

profile
개발자 꿈나무

0개의 댓글