YataNox
[My_SQL] Lv.4 언어별 개발자 분류하기 본문
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
처음엔 WITH절들을 이용해서 각 GRADE에 의해 하나하나 구한 뒤 UNION작업을 통해 합쳐주었지만 코드가 너무 길었고 비효율적이었다.
아래 블로그에서 좀 더 좋은 코드를 발견하여 공유한다.
GROUP BY - [언어별 개발자 분류하기] _ LEVEL 4
해당 문제는 원래 9주차에 풀었던 문제지만, 풀이 과정에 대한 자세한 설명이 필요해 따로 포스팅한다프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/276036[ 문제 ]SKILLCODES
ddunddan.tistory.com
코드
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 |