SQL 고득점 KIT

SQL 고득점 Kit: 3월에 태어난 여성 회원 목록 출력하기

Reference: https://school.programmers.co.kr/learn/courses/30/lessons/131120다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음

2026년 1월 25일2min read

Reference: https://school.programmers.co.kr/learn/courses/30/lessons/131120

문제 설명 ✅

다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다.

#### 테이블 구조

| Column name | Type | Nullable | | :-: | :-: | :-: | | MEMBER_ID | VARCHAR(100) | FALSE | | MEMBER_NAME | VARCHAR(50) | FALSE | | TLNO | VARCHAR(50) | TRUE | | GENDER | VARCHAR(1) | TRUE | | DATE_OF_BIRTH | DATE | TRUE |


문제 ✅

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


예시 ✅

MEMBER_PROFILE 테이블이 다음과 같을 때

| MEMBER_ID | MEMBER_NAME | TLNO | GENDER | DATE_OF_BIRTH | | :-: | :-: | :-: | :-: | :-: | | jiho92@naver.com | 이지호 | 01076432111 | W | 1992-02-12 | | jiyoon22@hotmail.com | 김지윤 | 01032324117 | W | 1992-02-22 | | jihoon93@hanmail.net | 김지훈 | 01023258688 | M | 1993-02-23 | | seoyeons@naver.com | 박서연 | 01076482209 | W | 1993-03-16 | | yoonsy94@gmail.com | 윤서연 | NULL | W | 1994-03-19 |

SQL을 실행하면 다음과 같이 출력되어야 합니다.

| MEMBER_ID | MEMBER_NAME | GENDER | DATE_OF_BIRTH | | :-: | :-: | :-: | :-: | | seoyeons@naver.com | 박서연 | W | 1993-03-16 |

⚠️ 날짜 포맷은 예시와 동일하게 나와야 합니다.


통과한 코드 ✅

sql
SELECT 
    MEMBER_ID, 
    MEMBER_NAME, 
    GENDER, 
    DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM 
    MEMBER_PROFILE
WHERE 
    GENDER = 'W' 
    AND TLNO IS NOT NULL 
    AND MONTH(DATE_OF_BIRTH) = 3
ORDER BY 
    MEMBER_ID ASC;

보충 ✅

Reference: https://marketinga.tistory.com/entry/SQL-날짜와-관련된-데이터추출YEARMONTHDAYOFMONTH

조건은 네 가지입니다. 1) 여성일 것, 2) 생일이 3월일 것, 3) TLNO가 NULL인 경우는 출력에서 배제할 것, 4) 결과는 회원 ID를 기준으로 오름차순 정렬할 것. 2번에 해당하는 부분이 떠오르지 않았습니다. 날짜 포맷에서 내가 원하는 값만 추출하는 방식을 몰랐다고 정리할 수 있겠네요.

우선은 연, 월, 일 정도만 알면 충분하지 않을까 생각합니다.

sql
# 연도 추출
SELECT * FROM 테이블 WHERE YEAR(컬럼) = '2026'
# 월 추출
SELECT * FROM 테이블 WHERE MONTH(컬럼) = '1'
# 일 추출
SELECT * FROM 테이블 WHERE DAYOFMONTH(컬럼) = '25'