본문 바로가기
Programmers(SQL 고득점 Kit)/LEVEL 4

[MySQL] 프로그래머스 - 언어별 개발자 분류하기 LEVEL 4

by DADA익선 2024. 12. 19.

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

언어별 개발자 분류하기 LEVEL 4

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

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

GRADE가 존재하는 개발자의 GRADE, ID, EMAIL을 조회하는 SQL 문을 작성해 주세요.

결과는 GRADE와 ID를 기준으로 오름차순 정렬해주세요.

문제 풀이 SQL CODE

1. Bit 연산 : 비트 연산은 숫자를 2진수로 표현해 각 비트 단위로 AND, OR, XOR 등 연산 수행

  • AND 연산 (&) : 두 비트가 모두 1일 때 1 반환 > ex. 16&400이면 10000(=16)&110010000(=256)에서 10000 출력
  • OR 연산 (|) : 두 비트 중 하나라도 1이면 1을 반환 > ex. 32|400 이면 100000(=32)|110010000(=256)에서 110110000  출력
  • XOR 연산 (^) : 두 비트가 다르면 1, 같으면 0 반환 > ex. 16^400 이면 10000(=16)^110010000(=256) 에서 110000000(=384) 출력
WITH main AS (
    SELECT  
        d.ID,
        d.EMAIL,
        group_concat(s.NAME) AS NAME,
        group_concat(s.CATEGORY) AS CATEGORY
    FROM DEVELOPERS d
    JOIN SKILLCODES s ON d.SKILL_CODE & s.CODE = s.CODE
    GROUP BY d.ID, d.EMAIL
)
SELECT *
FROM (SELECT 
    CASE 
        WHEN NAME LIKE '%Python%' AND CATEGORY LIKE '%Front End%' THEN 'A'
        WHEN NAME LIKE '%C#%' THEN 'B'
        WHEN CATEGORY LIKE '%Front End%' THEN 'C'
    END AS GRADE,
    ID,
    EMAIL
FROM main) A
WHERE GRADE IS NOT NULL
ORDER BY GRADE, ID

다른 LEVEL 4 문제 보러가기


2024.12.18 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기 LEVEL 4

2024.12.11 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 LEVEL 4

2024.12.11 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 저자 별 카테고리 별 매출액 집계하기 LEVEL 4

2024.12.10 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 특정 세대의 대장균 찾기 LEVEL 4

2024.12.06 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 LEVEL 4

2024.12.05 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 LEVEL 4

2024.12.18 - [Programmers(SQL 고득점 Kit)/LEVEL 4] - [MySQL] 프로그래머스 - 입양 시각 구하기(2) LEVEL 4