[Programmers] 3월에 태어난 여성 회원 목록 출력하기 (MySQL)
Level 2
📌 문제 : [카테고리 별 상품 개수 구하기]
📖 문제 설명
다음은 식당 리뷰 사이트의 회원 정보를 담은 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 |
주의사항
DATE_OF_BIRTH
의 데이트 포맷이 예시와 동일해야 정답처리 됩니다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
🗝 문제 풀이
- 여성회원만 출력해야하므로 WHERE절로 GENDER = ‘W’
- 전화번호가 null이 아니여야하므로 TLO is not null
- 3월에 태어난 회원만 추출해야하므로 LIKE절을 이용 ‘%-03-%’
- MEMBER_ID 기준으로 오름차순 정렬
SELECT MEMBER_ID,
MEMBER_NAME,
GENDER,
DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE m
WHERE GENDER = 'W'
AND TLNO is not null
AND DATE_OF_BIRTH LIKE '%-03-%'
ORDER BY MEMBER_ID ASC;