[프로그래머스]3월에 태어난 여성 회원 목록 출력하기 - SQL

Donghyun·2024년 7월 3일
0

Code Kata - SQL

목록 보기
3/62
post-thumbnail

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

문제 설명

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

Column nameTypeNullable
MEMBER_IDVARCHAR(100)FALSE
MEMBER_NAMEVARCHAR(50)FALSE
TLNOVARCHAR(50)TRUE
GENDERVARCHAR(1)TRUE
DATE_OF_BIRTHDATETRUE

문제

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


예시

MEMBER_PROFILE 테이블이 다음과 같을 때

MEMBER_IDMEMBER_NAMETLNOGENDERDATE_OF_BIRTH
jiho92@naver.com이지호01076432111W1992-02-12
jiyoon22@hotmail.com김지윤01032324117W1992-02-22
jihoon93@hanmail.net김지훈01023258688M1993-02-23
seoyeons@naver.com박서연01076482209W1993-03-16
yoonsy94@gmail.com윤서연NULLW1994-03-19

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

MEMBER_IDMEMBER_NAMEGENDERDATE_OF_BIRTH
seoyeons@naver.com박서연W1993-03-16

주의사항

DATE_OF_BIRTH의 데이트 포맷이 예시와 동일해야 정답처리 됩니다.

문제풀이

조건

  • 생일이 3월
  • 성별은 여성
  • 전화번호가 NULL 값이면 제외
  • 회원 ID 를 기준으로 오름차순

출력해야 될 컬럼

  • MEMBER_ID
  • MEMBER_NAME
  • GENDER
  • DATE_OF_BIRTH → yyyy-mm-dd 형식으로

서브쿼리

select *
from MEMBER_PROFILE
where month(DATE_OF_BIRTH) = '03'
	and GENDER = 'W'
	and TLNO is not NULL

메인쿼리와 서브쿼리 합치기 - 마지막에 오름차순 조건 추가

select
    MEMBER_ID,
    MEMBER_NAME,
    GENDER,
    date_format(DATE_OF_BIRTH, '%Y-%m-%d') DATE_OF_BIRTH
from(   select *
        from MEMBER_PROFILE
        where month(DATE_OF_BIRTH) = '03'
            and GENDER = 'W'
            and  TLNO is not NULL
    ) a
order by MEMBER_ID asc;
profile
데이터분석 공부 일기~!

0개의 댓글