728x90
반응형
안녕하세요! 오늘은 프로그래머스 SQL 고득점 Kit 문제 중 SELECT 분야의 '3월에 태어난 여성 회원 목록 출력하기' 문제 리뷰를 진행하겠습니다.
문제는 아래 링크에서 확인해주시면 됩니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131120
- 문제 설명
- 문제
- 예시
- 주의사항
- 문제를 파악하여 쿼리 생각하기
예시에서 볼 수 있듯이, 저희가 문제에서 SELECT 해야하는 부분은 회원의
- ID : MEMBER_ID
- 이름 : MEMBER_NAME
- 전화번호 : TLNO
- 성별 : GENDER
- 생년월일 : DATE_OF_BIRTH
총 5개인 것을 확인할 수 있습니다.
다음으로 저희가 WHERE로 조건을 확인해야 하는 부분은
- 회원의 생일은 3월 : DATE_OF_BIRTH LIKE '%-03-%'
→ 생년월일이 '연도-월-일' 의 형태로 되어있기 때문에 월만 3월이면 되기 때문에 위와 같은 쿼리가 완성됩니다. - 회원의 성별은 여성 : GENDER = 'W'
- 회원의 전화번호는 NULL이 아니여야 함 : TLNO IS NOT NULL
총 3개인 것을 확인할 수 있습니다.
마지막으로 저희가 문제에서 확인해야 하는 부분은
- 결과는 회원 ID를 기준으로 오름차순 : ORDER BY MEMBER_ID ASC
- 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
반응형
'SQL > 프로그래머스' 카테고리의 다른 글
[SELECT] 서울에 위치한 식당 목록 출력하기 (2) | 2024.09.05 |
---|---|
[GROUP BY] 저자 별 카테고리 매출액 집계하기 (1) | 2024.09.03 |
[JOIN] 있었는데요 없었습니다 (53) | 2024.04.11 |
[GROUP BY] 조건에 맞는 사용자와 총 거래금액 조회하기 (36) | 2024.03.31 |