알고리즘/SQL
대장균의 크기에 따라 분류하기 2 ***
베리영young
2024. 9. 19. 08:22
일단 이 문제를 풀기 위해 블로그를 찾아보면
새로운 함수가 있다 ㅎㅎㅎㅎㅎㅎㅎㅎ;;;;;
WITH A AS (
SELECT ID, RANK() OVER (ORDER BY SIZE_OF_COLONY DESC) AS R
FROM ECOLI_DATA
)
-- 코드를 작성해주세요 -- 않이 모르는 함수가 있네
SELECT ECOLI_DATA.ID,
CASE
WHEN 1/4 >= R/(SELECT COUNT(*) FROM ECOLI_DATA) THEN "CRITICAL"
WHEN 1/2 >= R/(SELECT COUNT(*) FROM ECOLI_DATA) THEN "HIGH"
WHEN 3/4 >= R/(SELECT COUNT(*) FROM ECOLI_DATA) THEN "MEDIUM"
ELSE "LOW"
END COLONY_NAME
FROM ECOLI_DATA INNER JOIN A
ON ECOLI_DATA.ID = A.ID
ORDER BY ECOLI_DATA.ID
CASE WHEN 절에서 COUNT(*)라고만 썼더니 자꾸 GROUP BY 어쩌구 하면서 오류 나길래
눈물이 났는데
서브쿼리로 저렇게 처리해주면 사용 가능!!! 하하.... 다시 해보자