[SQL] Python 개발자 찾기

Ray·2025년 3월 5일
0

SQL

목록 보기
8/19

🔎 문제설명

  • 출처: 프로그래머스
  • 사용언어(RDBMS): SQL(MySQL)
  • 문제:

    DEVELOPER_INFOS 테이블에서 Python 스킬을 가진 개발자의 정보를 조회하려 합니다. Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요. 결과는 ID를 기준으로 오름차순 정렬해 주세요.




✅ 제출답안

# Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회
# ID를 기준으로 오름차순 정렬
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPER_INFOS
WHERE SKILL_1 IN ('Python') OR
      SKILL_2 IN ('Python') OR
      SKILL_3 IN ('Python') 
ORDER BY ID ASC;



🚀 풀이기록

어렵지 않은 문제였지만 WHERE문에서 조건을 작성하는 부분이 비효율적으로 작성한 것 같아 프로그래머스에서 다른 분들이 작성한 답을 살펴보았다. 다르게 작성한 답안이 있었는데, 다음과 같았다.

SELECT ID
     , EMAIL
     , FIRST_NAME
     , LAST_NAME
FROM DEVELOPER_INFOS
WHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3)
ORDER BY ID

WHERE문의 IN연산자에 문자열이 아닌 컬럼들을 넣어주어 코드의 길이가 짧아지면서 효율적이고 가독성이 좋게 보였다. 실제로 이렇게 작성한 코드를 실행했더니 오류없이 제대로 실행되었다. 이 부분이 신기해서 GPT에게 물어보니, IN 연산자는 값을 먼저 두고 여러개의 컬럼과 비교하는 형태로도 사용이 가능하다고 했다. 그러면서 내부적으로는 아래와 같이 해석된다고 설명해주었다.

'Python' = SKILL_1 OR 'Python' = SKILL_2 OR 'Python' = SKILL_3
profile
미래의 독자인 나를 위해 글을 씁니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN