프로그래머스/쿼리

[mysql] SELECT - 대장균의 크기에 따라 분류하기 2

have a good time 2025. 3. 19. 11:51

 

SELECT A.ID, 
		CASE WHEN A.R > A.MAX_ID * 0.75 THEN 'CRITICAL'
			 WHEN A.R > A.MAX_ID* 0.5 THEN 'HIGH'
			 WHEN A.R > A.MAX_ID * 0.25 THEN 'MEDIUM'
			 ELSE 'LOW'         
		END AS COLONY_NAME    
FROM 
	(SELECT ID
			# 순위
			, ROW_NUMBER() OVER (ORDER BY SIZE_OF_COLONY) AS R
			# 총 데이터의 수
			, MAX(ID) OVER() AS MAX_ID
    FROM ECOLI_DATA) A
ORDER BY ID

 

설명하자면

 

, ROW_NUMBER() OVER (ORDER BY SIZE_OF_COLONY) AS R

이 부분에서 순위를 구하고

 

, MAX(ID) OVER() AS MAX_ID

이 부분에서 총 데이터의 수를 구한다 

 

이 부분만 실행시키면 아래와 같은 결과

 

 

 

gpt가 설명해주길

 

 

 

 

이렇게 나온 결과에서 

최종적으로 결과값을 구하면 됨