728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
새로 알게된 점
원래 테이블의 크기를 구할 때, 매번 CASE WHEN THEN 안에서
SELECT COUNT(컬럼) FROM 테이블
을 사용해서 구해줬는데, 쉽게 구할 수 있는 방법을 알았다!
MAX(컬럼) OVER() AS 바꿀 컬럼명
을 사용하면 쉽게 구할 수 있더라 !!
풀이
ROW_NUMBER()를 사용해서 대장균 사이즈 별로 순위를 매겨줬다.
ROW_NUMBER() OVER(ORDER BY 컬럼명 DESC/ASC)
ROW_NUMBER() 함수를 사용하면, OVER안에 넣은 컬럼을 기준으로 고유한 값을 부여해준다.
전체코드
-- 코드를 작성해주세요
WITH COLONY AS(
SELECT ID, SIZE_OF_COLONY,
ROW_NUMBER() OVER(ORDER BY SIZE_OF_COLONY DESC) AS NUM,
MAX(ID) OVER() AS TOTAL
FROM ECOLI_DATA
)
SELECT ID,
CASE WHEN NUM <= TOTAL*0.25 THEN 'CRITICAL'
WHEN NUM <= TOTAL*0.5 THEN 'HIGH'
WHEN NUM <= TOTAL*0.75 THEN 'MEDIUM'
ELSE 'LOW' END AS COLONY_NAME
FROM COLONY
ORDER BY ID;
728x90
'코테 > SQL' 카테고리의 다른 글
[Programmers] 업그레이드 된 아이템 구하기 (MySQL) (0) | 2024.04.19 |
---|---|
[Programmers] 특정 물고기를 잡은 총 수 구하기 (MySQL) (0) | 2024.04.17 |
[Programmers] 대장균의 크기에 따라 분류하기1 (MySQL) (0) | 2024.04.15 |
[Programmers] 물고기 종류 별 잡은 수 구하기 (MySQL) (0) | 2024.04.15 |
[Programmers] 월별 잡은 물고기 수 구하기 (MySQL) (0) | 2024.04.14 |