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