본문 바로가기
카테고리 없음

[프로그래머스/SQL] 언어별 개발자 분류하기

by 서니서닝 2024. 8. 19.
728x90

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

문제 예시

 

원하는 결과

📌 풀이 )

* 틀린 풀이가 있으면 댓글 남겨주세요!

 

WITH DeveloperSkills AS (
    SELECT 
        D.ID,
        D.EMAIL,
        D.SKILL_CODE,
        SUM(CASE WHEN SC.CATEGORY = 'Front End' THEN SC.CODE ELSE 0 END) AS FrontEndSkillSum,
        MAX(CASE WHEN SC.NAME = 'Python' THEN SC.CODE ELSE 0 END) AS PythonSkill,
        MAX(CASE WHEN SC.NAME = 'C#' THEN SC.CODE ELSE 0 END) AS CSharpSkill
    FROM DEVELOPERS D
    JOIN SKILLCODES SC ON (D.SKILL_CODE & SC.CODE) = SC.CODE
    GROUP BY D.ID, D.EMAIL, D.SKILL_CODE
),
GradedDevelopers AS (
    SELECT 
        ID,
        EMAIL,
        CASE 
            WHEN FrontEndSkillSum > 0 AND PythonSkill > 0 THEN 'A'
            WHEN CSharpSkill > 0 THEN 'B'
            WHEN FrontEndSkillSum > 0 THEN 'C'
            ELSE NULL
        END AS GRADE
    FROM DeveloperSkills
)
SELECT 
    GRADE,
    ID,
    EMAIL
FROM GradedDevelopers
WHERE GRADE IS NOT NULL
ORDER BY GRADE, ID;

 

728x90

댓글