YataNox
[My_SQL] Lv.4 언어별 개발자 분류하기 본문
문제
처음엔 WITH절들을 이용해서 각 GRADE에 의해 하나하나 구한 뒤 UNION작업을 통해 합쳐주었지만 코드가 너무 길었고 비효율적이었다.
아래 블로그에서 좀 더 좋은 코드를 발견하여 공유한다.
코드
SELECT
CASE WHEN (GROUP_CONCAT(NAME) LIKE "%Python%") AND MAX(CATEGORY) = "Front End" THEN 'A'
WHEN GROUP_CONCAT(NAME) LIKE "%C#%" THEN 'B'
WHEN MAX(CATEGORY) = "Front End" THEN 'C'
ELSE NULL END AS GRADE
,ID
,MIN(EMAIL) AS EMAIL
FROM DEVELOPERS d
JOIN SKILLCODES s ON d.SKILL_CODE & s.CODE
GROUP BY ID
HAVING GRADE IS NOT NULL
ORDER BY 1,2;
'DB > Programmers SQL' 카테고리의 다른 글
[My_SQL] Lv.2 동명 동물 수 찾기 (0) | 2024.11.23 |
---|---|
[My_SQL] Lv.5 멸종위기의 대장균 찾기 (0) | 2024.06.17 |
[My_SQL] Lv.4 우유와 요거트가 담긴 장바구니 (0) | 2024.06.10 |
[My_SQL] Lv.4 취소되지 않은 진료 예약 조회하기 (0) | 2024.06.10 |
[My_SQL] Lv.4 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2024.06.10 |