[SQL문제다시풀기] 대장균의 크기에 따라 분류하기2 - percent_rank() over

silver's avatar
Feb 13, 2025
[SQL문제다시풀기] 대장균의 크기에 따라 분류하기2 - percent_rank() over

문제

MYSQL

내가 작성한 정답

with sorted as (select id, size_of_colony, percent_rank() over (order by size_of_colony desc) as sort from ecoli_data) select id, case when sort <= 0.25 then 'CRITICAL' when sort <= 0.5 then 'HIGH' when sort <= 0.75 then 'MEDIUM' else 'LOW' end COLONY_NAME from sorted order by 1 asc
 
 

PERCENT_RANK

notion image
💡
PERCENT_RANK() 함수
특정 행이 차지하는 상대적 위치를 백분율로 표현 PERCENT_RANK() OVER (PARTITION BY column1 ORDER BY column2)
PARTITION BY: 데이터 집합을 나누는 기준이 되는 열을 지정. 이 부분이 없으면 전체 집합에 대해 계산된다. ORDER BY: 순위를 매길 기준이 되는 열을 지정. 이 열의 값에 따라 순위가 결정된다.
 
// 각 직원의 급여에 대한 상대적 순위를 계산 SELECT id, name, salary, PERCENT_RANK() OVER (ORDER BY salary) AS salary_percent_rank FROM employees;
// 부서별로 직원의 급여 순위를 계산 -> PARTITION BY를 사용 SELECT id, name, department_id, salary, PERCENT_RANK() OVER (PARTITION BY department_id ORDER BY salary) AS salary_percent_rank FROM employees;
Share article

silver