코딩 테스트
[프로그래머스 SQL] Lv1 Python 개발자 찾기
그리득
2024. 8. 3. 12:51
728x90
회사 내부 프로젝트에서는 ORM을 사용하여 쿼리를 직접적으로 작성할 일이 거의 없었는데 새로 맡은 프로젝트에서는 쿼리문을 작성해야 하는 상황이 많아져서, SQL에 대한 공부의 필요성을 느껴 글을 작성했습니다.
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/276013
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
DEVELOPER_INFOS 테이블은 개발자들의 프로그래밍 스킬 정보를 담은 테이블입니다. DEVELOPER_INFOS 테이블 구조는 다음과 같으며, ID, FIRST_NAME, LAST_NAME, EMAIL, SKILL_1, SKILL_2, SKILL_3는 각각 ID, 이름, 성, 이메일, 첫 번째 스킬, 두 번째 스킬, 세 번째 스킬을 의미합니다.
테이블 구조
NAME | TYPE | UNIQUE | NULLABLE |
ID | VARCHAR(N) | Y | N |
FIRST_NAME | VARCHAR(N) | N | Y |
LAST_NAME | VARCHAR(N) | N | Y |
VARCHAR(N) | Y | N | |
SKILL_1 | VARCHAR(N) | N | Y |
SKILL_2 | VARCHAR(N) | N | Y |
SKILL_3 | VARCHAR(N) | N | Y |
문제
DEVELOPER_INFOS 테이블에서 Python 스킬을 가진 개발자의 정보를 조회하려 합니다. Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.
제출 답안
SELECT
ID,
EMAIL,
FIRST_NAME,
LAST_NAME
FROM
DEVELOPER_INFOS
WHERE
SKILL_1 LIKE 'Python'
|| SKILL_2 LIKE 'Python'
|| SKILL_3 LIKE 'Python'
ORDER BY
ID
다른 풀이
SELECT
ID,
EMAIL,
FIRST_NAME,
LAST_NAME
FROM
DEVELOPER_INFOS
WHERE
'Python' IN (
SKILL_1,
SKILL_2,
SKILL_3
)
ORDER BY
ID
사담
WHERE절에 하나씩 비교하는 코드를 짰는데 중복 코드가 너무 많아서 IN절로 해결할 수 없을까 고민을 해봤다.
검색을 해보니 키워드를 WHERE절에 넣고 해결할 수 있는 방법이 있었다.
키워드를 앞에 넣는 건 생각 못했는데 확실히 코드가 깔끔해진 거 같다.