Programmers MYSQL 언어별 개발자 분류하기

Pocketopi·2025년 4월 27일
post-thumbnail

🔔 문제

개발자의 스킬별로 등급을 나누어 출력하라.
[언어별 개발자 분류하기(Level4)]

🎯 풀이 전략

🔑 핵심 포인트

개발자의 등급 :
A : 파이썬과 하나이상의 프론트엔드 가능자
B : C# 가능자
C : 프론트엔드 가능자
비트연산자를 이용해 각 코드별 개발자 등급을 나누었다.
❗ SUM(CODE)를 이용하여 다중(프론트 엔드) 개발자를 찾을 수 있었다.
WHERE, ORDER BY를 GRADE로 할 수 없어 CTE를 이용하였다.

💻 정답 쿼리 예시

WITH CTE AS (SELECT CASE
    WHEN SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python') > 0 AND
        SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End') > 0
    THEN 'A'
    WHEN SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#') > 0
    THEN 'B'
    WHEN SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End') > 0
    THEN 'C'
    ELSE NULL END AS GRADE, ID, EMAIL
    FROM DEVELOPERS)

SELECT *
FROM CTE
WHERE GRADE IS NOT NULL
ORDER BY GRADE, ID

💡 핵심문법 및 배운 점

  • WITH
  • & : 비트연산자
  • SUM(CODE) : 비트 연산자에 유용하게 활용하였다.

⏱️ 걸린 시간: 12분 00초

profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

0개의 댓글