[SQL] 프로그래머스 SQL 고득점 Kit_GROUP BY (23/24)

餘園·2025년 8월 1일

SQL 고득점 Kit

목록 보기
74/109
post-thumbnail

언어별 개발자 분류하기 (Level 4)

DEVELOPERS 테이블에서 GRADE별 개발자의 정보를 조회하려 합니다. GRADE는 다음과 같이 정해집니다.

  • A : Front End 스킬과 Python 스킬을 함께 가지고 있는 개발자
  • B : C# 스킬을 가진 개발자
  • C : 그 외의 Front End 개발자

GRADE가 존재하는 개발자의 GRADE, ID, EMAIL을 조회하는 SQL 문을 작성해 주세요. 결과는 GRADE와 ID를 기준으로 오름차순 정렬해 주세요.

solve

WITH FRONT AS (
	SELECT SUM(CODE) AS F FROM SKILLCODES WHERE CATEGORY='Front End'),
PYTHON AS (
    SELECT CODE AS P FROM SKILLCODES WHERE NAME = 'Python'),
CS AS (
    SELECT CODE AS C FROM SKILLCODES WHERE NAME = 'C#')

SELECT 
    CASE
        WHEN SKILL_CODE & F != 0 AND SKILL_CODE & P != 0 THEN 'A'
        WHEN SKILL_CODE & C != 0 THEN 'B'
        WHEN SKILL_CODE & F != 0 THEN 'C'
    END AS GRADE
    , ID
    , EMAIL
FROM DEVELOPERS
JOIN FRONT JOIN PYTHON JOIN CS
HAVING GRADE IS NOT NULL
ORDER BY GRADE, ID
  • 너무 어려운데...
  • 이진수 다루는 건 아직도 모르겠다...
profile
What else can I do

0개의 댓글