우당탕탕 개발일지
[SQL] 프로그래머스 GROUP BY : 언어별 개발자 분류하기 (level 4) - 2회차 복습 완료 본문
💡문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/276036
💡SQL 코드 설계
GRADE가 각각 A, B, C가 되는 조건을 파악하고 CASE WHEN 구문으로 조건을 만든다.
- A : Front End 스킬과 Python 스킬을 함께 가지고 있는 개발자
SKILL_CODE & (select sum(code) from skillcodes where category = "Front End") > 0 AND SKILL_CODE & (select code from skillcodes where name = "Python") > 0
- B : C# 스킬을 가진 개발자
SKILL_CODE & (select code from skillcodes where name = "C#") > 0
- C : 그 외의 Front End 개발자
SKILL_CODE & (select sum(code) from skillcodes where category = "Front End") > 0
💡SQL 코드
-- 코드를 작성해주세요
SELECT
CASE
WHEN SKILL_CODE & (select sum(code) from skillcodes where category = "Front End") > 0 AND SKILL_CODE & (select code from skillcodes where name = "Python") > 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"
END AS GRADE,
ID, EMAIL
FROM
DEVELOPERS
WHERE
CASE
WHEN SKILL_CODE & (select sum(code) from skillcodes where category = "Front End") > 0 AND SKILL_CODE & (select code from skillcodes where name = "Python") > 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"
END IS NOT NULL
ORDER BY
GRADE, ID
💡기억할 내용
1. WHERE 절에 CASE WHEN으로 만든 필드명을 쓸 수 없으니, CASE WHEN문을 그대로 다시 써줘야 한다.
2. CASE WHEN할 때 조건 앞에 매번 WHEN을 붙여줘야 한다.
'SQL' 카테고리의 다른 글
[SQL] 프로그래머스 GROUP BY : 식품분류별 가장 비싼 식품의 정보 조회하기(level 4) - 2회차 복습 완료 (0) | 2024.07.04 |
---|---|
[SQL] 프로그래머스 JOIN : 보호소에서 중성화한 동물(level 4) - 2회차 복습 완료 (0) | 2024.07.04 |
[SQL] 비트연산자 - 2회차 복습 완료 (0) | 2024.07.02 |
[SQL] 프로그래머스 SELECT : 부모의 형질을 모두 가지는 대장균 찾기(level 2) - 2회차 복습 완료 (1) | 2024.07.02 |
[SQL] 프로그래머스 JOIN: 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(level 4) - 2회차 복습 완료 (0) | 2024.07.02 |