반응형
문제 설명
다음은 식당 리뷰 사이트의 회원 정보를 담은 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의 데이트 포맷이 예시와 동일해야 정답처리 됩니다
풀이
1. MEMBER_PROFILE 테이블에서
2. 생일이 3월인 여성 회원의
3. ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요.
4. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고
5. 결과는 회원ID를 기준으로 오름차순 정렬해주세요.
SELECT MEMBER_ID
, MEMBER_NAME
, GENDER
, TO_CHAR(DATE_OF_BIRTH,'YYYY-MM-DD') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE TO_CHAR(DATE_OF_BIRTH,'MM') = '03'
AND GENDER = 'W'
AND TLNO IS NOT NULL
ORDER BY MEMBER_ID
코드풀이
SELECT MEMBER_ID -- 회원ID
, MEMBER_NAME -- 회원 이름
, GENDER -- 회원 성별
, TO_CHAR(DATE_OF_BIRTH,'YYYY-MM-DD') AS DATE_OF_BIRTH -- 생년월일
-- 결과값에서 생년월일 포맷이 YYYY-MM-DD로 되어있음으로 동일하게 변경
FROM MEMBER_PROFILE
WHERE TO_CHAR(DATE_OF_BIRTH,'MM') = '03'
/* 생일이 3월인 회원을 조회하기 위해 CREATED_DATE컬럼의 DATE타입을 문자열 형태로 변경
3월이 생일인 회원만 조회하므로 날짜 포맷을 'MM'로 변경 */
AND GENDER = 'W' -- 여성 회원만 조회
AND TLNO IS NOT NULL -- 전화번호가 null값인 경우 제외
ORDER BY MEMBER_ID -- 회원ID를 기준으로 오름차순 정렬
문제출처
https://school.programmers.co.kr/learn/courses/30/lessons/131120
도움이 되셨다면 공감 버튼과 댓글 남겨주세요오♥
반응형
'개발일지 > 코테 정복기' 카테고리의 다른 글
[프로그래머스/SQL] 조건에 부합하는 중고거래 상태 조회하기(Oracle) (0) | 2023.08.08 |
---|---|
[프로그래머스/SQL] 재구매가 일어난 상품과 회원 리스트 구하기(Oracle) (0) | 2023.08.07 |
[프로그래머스/SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기(Oracle) (0) | 2023.07.06 |
[프로그래머스/SQL] 조건에 부합하는 중고거래 댓글 조회하기 (Oracle) (0) | 2023.07.04 |
[프로그래머스/SQL] 인기있는 아이스크림 (Oracle) (0) | 2023.07.01 |