Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준 1764 자바
- dfs
- 2798 자바
- 백준 28278 자바
- 자바 1003
- 10813 자바
- 1764 자바
- 백준 10866 자바
- 데보션영 3기
- 자바 2346
- 2346 풍선 터뜨리기
- 1010 자바
- 자바 10866
- 백준
- 자바
- 티움투어
- 코딩테스트
- 10810 자바
- IAM 사용자
- 그리디
- 자바 2164
- 28278 스택 2
- 10807 자바
- 2164 자바
- 파이썬
- 2748 자바
- 백준 2346 자바
- 자바 28278
- IAM Identity Center
- BFS
Archives
- Today
- Total
자두의 데브로그
[MySQL] 프로그래머스 언어별 개발자 분류하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/276036
case~end 구문 사용해야된다는 건 알았는데 또 비트연산을 해야돼서 약간 뇌정지가 왔었다.
처음에 했던 방법은 직접 C#, Python 등에 해당하는 code의 값을 넣었는데 그렇게 하면 만약 해당 스킬에 대한 code가 바뀌면 답이 틀릴 거라고 생각하고 일단 채점해봤는데 당연히 틀렸다. case 내에서도 select 사용할 수 있기 때문에 특히, front end 개발자를 구할 때는 해당 스킬의 code를 더해서 만약 사용자의 skill_code랑 & 연산에서 true 값이 나온다면 해당 값을 grade로 갖게 했다. group by는 사용하지 않아도 됐었다.
-- 코드를 작성해주세요
select
(case
when (skill_code & (select sum(CODE) from SKILLCODES where category like 'Front%')) and (SKILL_CODE & (select CODE from SKILLCODES where name ='Python')) then 'A'
when SKILL_CODE & (select CODE from SKILLCODES where name ='C#') then 'B'
when SKILL_CODE & (select sum(CODE) from SKILLCODES where category like 'front%') then 'C'
else null
end) as GRADE, ID, EMAIL
from DEVELOPERS
-- group by GRADE, ID, EMAIL
having grade is not null
order by GRADE, ID;
'코딩테스트 > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 노선별 평균 역 사이 거리 조회하기 (0) | 2024.10.11 |
---|---|
[MySQL] 프로그래머스 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (1) | 2024.10.11 |
[MySQL] 프로그래머스 가격대 별 상품 개수 구하기 (1) | 2024.10.11 |
[MySQL] 프로그래머스 입양 시각 구하기(2) (1) | 2024.10.11 |
[MySQL] 프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.10.11 |