PARTITION BY
ORDER BY
RANK : 중복 값 있을 때, 순위 건너 뛰고 다음 순위 부여
ex) a,b,b,c => 1,2,2,4사용 형식
- RANK() OVER(ORDER BY [컬럼명] ASC|DESC)
프로그래머스 - 대장균 크기에 따라 분류하기 2
문제 풀기
-- => ID, COLONY_NAME(분류된 이름)
-- ID 오름차순
SELECT ID, CASE
WHEN R<= CNT*0.25 THEN 'CRITICAL'
WHEN R<= CNT*0.5 THEN 'HIGH'
WHEN R<= CNT*0.75 THEN 'MEDIUM'
ELSE 'LOW'
END AS COLONY_NAME
FROM (
SELECT ID,
RANK() OVER(ORDER BY SIZE_OF_COLONY DESC) AS R,
(SELECT COUNT(*) FROM ECOLI_DATA) AS CNT
FROM ECOLI_DATA
) AS E
ORDER BY ID
DENSE_RANK : 중복 값 있을 때, 연속된 순위 부여
ex) a,b,b,c => 1,2,2,3사용 형식
- DENSE_RANK() OVER(ORDER BY [컬럼명] ASC|DESC)
ROW_NUMBER : 중복 값 상관없이, 순차적인 순위 부여
ex) a,b,b,c => 1,2,3,4사용 형식
- ROW_NUMBER() OVER(ORDER BY [컬럼명] ASC|DESC)