코딩테스트/SQL

[SQL][OVER] 대장균의 크기에 따라 분류하기 2

박소민 2024. 11. 1. 20:55
대장균의 크기에 따라 분류하기 2
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

  • PERCENT_RANK() : 상대 순위 함수로, 현재 행 값에 대해 0~1 사이의 상대값을 리턴
  • OVER() : 각 행별로 () 안의 특정 기준에 따라 필요한 집합을 구해 함수를 적용
  • BETWEEN 하면 안되는 이유 ->  소수점 N번째까지 모두 포함할 수 없기때문
SELECT ID, CASE 
            WHEN P.PERCENT <= 0.25 THEN "CRITICAL"
            WHEN P.PERCENT <= 0.5 THEN "HIGH"
            WHEN P.PERCENT <= 0.75 THEN "MEDIUM"
            ELSE "LOW" END AS COLONY_NAME
FROM 
    (SELECT ID, 
        PERCENT_RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) AS PERCENT
    FROM ECOLI_DATA) AS P
ORDER BY 1
참고) SQL OVER절 https://velog.io/@wltn716/SQL-Over-%EC%A0%88