출처
문제
DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요. 결과는 ID를 기준으로 오름차순 정렬해 주세요.
문제에 대한 해석
front end의 코드 | 10진법 > 2진법으로 전환 | front end의 코드 합산 |
select name, conv(code,10,2) from SKILLCODES where category = 'Front End' |
select conv(sum(code),10,2) from SKILLCODES where category = 'Front End' |
풀이(MYSQL)
select id, email, first_name, last_name
from DEVELOPERS
where skill_code & (
select sum(code)
from SKILLCODES
where category = 'Front End')
order by id
정답 | 정답자의 스킬코드 |
작동순서
💡SQL 실행 순서는 From -> Where -> Group by -> Having -> Select -> Order by ->결과반환
- FROM 절: DEVELOPERS테이블에서
- WHERE 절: SKILLCODES테이블에서 category가 'Front End'인 경우의 code를 합했을때 2진법의 수와 skill_code가 하나라도 같을 경우 필터링 하여
- SELECT 절: id, email, first_name, last_name를 출력하라
- ORDER BY 절: id 오름차순으로
다른사람 풀이
SELECT DISTINCT ID, EMAIL, FIRSTNAME, LASTNAME
FROM SKILLCODES JOIN DEVELOPERS
WHERE CATEGORY = 'Front End' and SKILL_CODE & CODE = CODE
ORDER BY ID
배운점
- 비트연산자의 활용
- conv(숫자, 숫자의 형태(예: 10진법), 바꾸고 싶은 순자의 형태(예: 2진법)
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] Leet code - Movie Rating (0) | 2024.07.10 |
---|---|
[문제풀이] 프로그래머스 - 언어별 개발자 분류하기 (0) | 2024.07.04 |
[문제풀이] Leet code - Capital Gain/Loss (1) | 2024.07.01 |
[문제풀이] 프로그래머스 - 우유와 요거트가 담긴 장바구니 (3) | 2024.07.01 |
[문제풀이] 프로그래머스 - 입양 시각 구하기(2) (2) | 2024.06.28 |