Database/SQL

[프로그래머스 SQL Lv.2] 3월에 태어난 여성 회원 목록 출력하기 (MySQL)

imnyoung 2026. 1. 7. 21:27

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131120

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

1. 테이블 : MEMBER_PROFILE

Column name Type Nullable Description
MEMBER_ID VARCHAR(100) FALSE 회원 ID
MEMBER_NAME VARCHAR(50) FALSE 회원 이름
TLNO VARCHAR(50) TRUE 회원 연락처
GENDER VARCHAR(1) TRUE 성별
DATE_OF_BIRTH DATE TRUE 생년월일

 

2. 문제

MEMBER_PROFILE 테이블에서 (1) 생일이 3월(2) 여성 회원(3) ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 (4) 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, (5) 결과는 회원ID를 기준으로 오름차순 정렬해주세요.

*주의: DATE_OF_BIRTH의 데이트 포맷이 예시와 동일해야 정답처리 됩니다.

DATE_OF_BIRTH
2021-03-15
2021-04-11

 

3. 문제풀이

(1) 생일이 3월인 회원 조회

WHERE MONTH(date_of_birth) = 3

(2) 여성 회원 조건 추가

WHERE MONTH(date_of_birth) = 3
AND gender = 'W'

(4) 전화번호가 NULL인 경우 제외

WHERE MONTH(date_of_birth) = 3
AND gender = 'W'
AND tlno IS NOT NULL

(3) 회원 ID, 이름, 성별, 생년월일 조회

SELECT member_id, member_name, gender, DATE_FORMAT(date_of_birth, '%Y-%m-%d') date_of_birth  -- 날짜 포맷 맞추기
FROM member_profile
WHERE MONTH(date_of_birth) = 3
AND gender = 'W'
AND tlno IS NOT NULL

(5) 결과는 회원ID 기준 오름차순 조회

SELECT member_id, member_name, gender, DATE_FORMAT(date_of_birth, '%Y-%m-%d') date_of_birth
FROM member_profile
WHERE MONTH(date_of_birth) = 3
AND gender = 'W'
AND tlno IS NOT NULL
ORDER BY member_id

 

4. 정답

따라서 정답은

SELECT member_id, member_name, gender, DATE_FORMAT(date_of_birth, '%Y-%m-%d') date_of_birth
FROM member_profile
WHERE MONTH(date_of_birth) = 3
AND gender = 'W'
AND tlno IS NOT NULL
ORDER BY member_id