Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

[프로그래머스] 대장균의 크기에 따라 분류하기 2 (MySQL) - ROWNUM 본문

MySQL

[프로그래머스] 대장균의 크기에 따라 분류하기 2 (MySQL) - ROWNUM

취준er 2024. 6. 20. 17:47

https://school.programmers.co.kr/learn/courses/30/lessons/301649

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

소요시간: ♾️

 

정답

WITH 
ROWNUMBER AS (
    SELECT
@ROWNUM := @ROWNUM + 1 AS 'ROWNUMM', ED.ID
FROM ECOLI_DATA ED, (SELECT @ROWNUM:=0) TMP
    ORDER BY ED.SIZE_OF_COLONY DESC
)

SELECT 
    E.ID,
CASE WHEN R.ROWNUMM <= 0.25 * (SELECT COUNT(*) FROM ECOLI_DATA) THEN 'CRITICAL'
WHEN R.ROWNUMM <= 0.5 * (SELECT COUNT(*) FROM ECOLI_DATA) THEN 'HIGH'
WHEN R.ROWNUMM <= 0.75 * (SELECT COUNT(*) FROM ECOLI_DATA) THEN 'MEDIUM'
    ELSE 'LOW' 
    END AS 'COLONY_NAME'
    FROM ECOLI_DATA E
    JOIN ROWNUMBER R ON E.ID = R.ID

    ORDER BY E.ID ASC;

 

평이한 코테 SQL은 이제 그럭저럭 풀 수 있어서 잠깐 sql 방치했더니 엄청 헤맸다.

더 좋은 방법이 있을 것 같은데 생각이 잘 안 난다.