728x90
반응형

안녕하세요! 오늘은 프로그래머스 SQL 고득점 Kit 문제 중 SELECT 분야의 '3월에 태어난 여성 회원 목록 출력하기' 문제 리뷰를 진행하겠습니다.

 

문제는 아래 링크에서 확인해주시면 됩니다.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

  • 문제 설명

  • 문제

  • 예시

  • 주의사항

 

  • 문제를 파악하여 쿼리 생각하기

예시에서 볼 수 있듯이, 저희가 문제에서 SELECT 해야하는 부분은 회원의

  1. ID : MEMBER_ID
  2. 이름 : MEMBER_NAME
  3. 전화번호 : TLNO
  4. 성별 : GENDER
  5. 생년월일 : DATE_OF_BIRTH

총 5개인 것을 확인할 수 있습니다.

 

다음으로 저희가 WHERE로 조건을 확인해야 하는 부분은

  1. 회원의 생일은 3월 : DATE_OF_BIRTH LIKE '%-03-%'
    → 생년월일이 '연도-월-일' 의 형태로 되어있기 때문에 월만 3월이면 되기 때문에 위와 같은 쿼리가 완성됩니다.
  2. 회원의 성별은 여성 : GENDER = 'W'
  3. 회원의 전화번호는 NULL이 아니여야 함 : TLNO IS NOT NULL

총 3개인 것을 확인할 수 있습니다.

 

마지막으로 저희가 문제에서 확인해야 하는 부분은

  1. 결과는 회원 ID를 기준으로 오름차순 : ORDER BY MEMBER_ID ASC
  2. DATE_OF_BIRTH는 예시와 동일한 데이터 포맷 : DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d)
    DATE_FORMAT 함수는 SQL에서 날짜 및 시간 값을 특정 형식의 문자열로 변환하는데 사용합니다.
    → 형식이 %Y-%m-%d인 이유는 M은 월의 영어 단어를 의미하고, D는 일 뒤에 영어 접미사(EX :1st, 2nd)가 붙기 때문에 숫자만 가져오고 싶을 경우, 소문자를 써야합니다.

총 2개인 것을 확인할 수 있습니다.

 

  • 쿼리 완성하기

이제 위에서 생각한 쿼리를 SQL의 실행순서에 맞게 배치해주면 됩니다.

그렇게 완성된 쿼리는 아래와 같습니다.

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

 

궁금한 부분이 있으신 분들은 댓글로 남겨주시면, 답변 드리도록 하겠습니다.

★읽어주셔서 감사합니★

728x90
반응형

+ Recent posts