Search
🙉

Programmers <대장균의 크기에 따라 분류하기 2>

CASE 문 + 서브쿼리 + 집계함수를 사용할 때 OVER() 윈도우 함수를 사용해 주어야 하는 문제이다.
--대장균의 크기에 따라 분류하기 2 SELECT ID, CASE WHEN IDX / TOTAL_CNT <= 0.25 THEN 'CRITICAL' WHEN IDX / TOTAL_CNT <= 0.5 THEN 'HIGH' WHEN IDX / TOTAL_CNT <= 0.75 THEN 'MEDIUM' ELSE 'LOW' END COLONY_NAME FROM ( SELECT ID, SIZE_OF_COLONY, ROW_NUMBER() OVER (ORDER BY SIZE_OF_COLONY DESC) IDX, COUNT(*) OVER() TOTAL_CNT FROM ECOLI_DATA ) sub ORDER BY ID ASC;
SQL
복사