반응형
문제
다음은 식당 리뷰 사이트의 회원 정보를 담은 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를 기준으로 오름차순 정렬해주세요.
개념 공부하기
DATE_FORMAT()을 이용하면 날짜 형식을 맞춰달라는 문제를 쉽게 통과할 수 있다.
![](https://blog.kakaocdn.net/dn/LTJeK/btsexfKoW1E/WtRFKWKmDnANgslL2qKRKK/img.png)
날짜 형식이 이런식으로 지정되어 있을 때 DATE_FORMAT(DATE_OF_BIRTH, 원하는 형식) 쿼리 작성하면 다음과 같은 결과를 얻을 수 있다.
SELECT
DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") AS BIRTH,
DATE_FORMAT(DATE_OF_BIRTH, "%Y") AS YEAR,
DATE_FORMAT(DATE_OF_BIRTH, "%m") AS MONTH,
DATE_FORMAT(DATE_OF_BIRTH, "%d") AS DAY
FROM MEMBER_PROFILE;
![](https://blog.kakaocdn.net/dn/bOAmCj/btsezEh27Xp/p1pN79mPFAdBCsj7AA1piK/img.png)
풀이
![](https://blog.kakaocdn.net/dn/cOq0wx/btseyzPL6dH/rDI2Gpkm37IWFaSGBxQCVk/img.png)
문제를 읽으면서 조건들을 분리하며 이해해 본다. 3월에 태어난 사람, 여성, 전화번호 != NULL 인 사람들만 출력해주길 바란다. WHERE절만 작성하면 될 거 같다.
- 문제에서 원하는 조건들로 WHERE 절을 작성해준다. (빨간 박스)
- DATE_FORMAT을 이용하면 날짜:시간 값 들 중 원하는 데이터만 뽑아올 수 있다.
- 회원 ID 오름차순 조회
-- 3월 태어난 사람, 여성
SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d")
FROM MEMBER_PROFILE
WHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = '03' AND GENDER = 'W' AND TLNO IS NOT NULL
ORDER BY MEMBER_ID
;
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131120
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'PS > SQL' 카테고리의 다른 글
프로그래머스 5월 식품들의 총 매출 조회하기 SQL(MySQL) (1) | 2023.05.11 |
---|---|
프로그래머스 서울에 위치한 식당 목록 출력하기 SQL(MySQL) (1) | 2023.05.10 |
프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 SQL(MySQL) (1) | 2023.05.09 |
프로그래머스 그룹별 조건에 맞는 식당 목록 출력하기 SQL(MySQL) (2) | 2023.05.08 |
프로그래머스 년, 월, 성별 별 상품 구매 회원 수 구하기 SQL(MySQL) (0) | 2023.05.07 |