[문제] 3월에 태어난 여성 회원 목록 출력하기 (20분 소요)
MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.
** DATE_OF_BIRTH의 데이트 포맷이 예시와 동일해야 정답처리 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131120
[문제 풀이]
MEMBER_PROFILE 테이블은 아래와 같이 구성이 되어있었고, 여기서 아래 주황색으로 표기 된 내용이 출력 되어야 한다.
| Column name | Type | Nullable |
| MEMBER_ID ( 회원 ID/ 이메일로 되어있음) |
VARCHAR(100) | FALSE |
| MEMBER_NAME (이름) | VARCHAR(50) | FALSE |
| TLNO (전화번호) | VARCHAR(50) | TRUE |
| GENDER (성별 - M/W구분) | VARCHAR(1) | TRUE |
| DATE_OF_BIRTH (년-월-일 구분) | DATE | TRUE |
SELECT MEMBER_ID, MEMBER_NAME, GENDER, Date_Format(DATE_OF_BIRTH,'%Y-%m-%d') as DATE_OF_BIRTH
FROM MEMBER_PROFILE
그리고 아래 주의사항에 DATE_OF_BIRTH의 데이트 포맷이 예시와 동일해야 하므로 DATE_OF_BIRTH 는 Date_format을 사용하였다.
그리고 3월 여성회원의 생일이 포함 되어야 하고 전화번호 Null 값은 제외 하여야 한다. 그래서 where 함수를 걸고 Month는 3 , 성별은 'W' (여성) , 그리고 TLNO (전화번호)는 NULL 값을 제외하도록 사용하였다.
WHERE MONTH (DATE_OF_BIRTH) Like '3' #3월 생일
and GENDER Like 'W' # 여성
and TLNO IS NOT NULL # 전화번호 Null 값 제외
ORDER BY MEMBER_ID ASC; # 회원아이디 기준 오름차순
나는 첫 문제를 풀다 'TLNO NOT NULL'로 썼다가 결과값이 오류 걸려 'IS'를 빼먹은 사실을 깨달았다. 빼먹은거 있는지 다시 확인 해봐야겠다 ... ㅠㅠ 그리고 가끔 ORDER BY 할 때마다 헷갈리는데.... 내림차순은 DESC, 오름차순은 ASC 이다.
[정답]
SELECT MEMBER_ID, MEMBER_NAME, GENDER, Date_Format(DATE_OF_BIRTH,'%Y-%m-%d') as DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH (DATE_OF_BIRTH) Like '3'
and GENDER Like 'W'
and TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
'스터디 > 학습일지' 카테고리의 다른 글
| [SQL] 코드카타 풀이 Employees Whose Manager Left the Company (0) | 2025.06.20 |
|---|---|
| [SQL] 250618 코드카타 문제풀이 Leetcode 1204 (0) | 2025.06.18 |
| [SQL] 20250617- mySQL 문제 풀이 미션 (1) (0) | 2025.06.18 |
| [SQL] 20250616- mySQL 문제 풀이 미션 (2) (1) | 2025.06.16 |
| [SQL] 20250616- mySQL 문제 풀이 미션 (1) (3) | 2025.06.16 |