๐ข ๋ณธ ํฌ์คํ ์ ํ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ์ ๋ฐ ์๋ฃ ์ถ์ฒ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต,
https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle์์ ๋ฐํ๋๋ค.
โ ๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ค์์ ์๋น ๋ฆฌ๋ทฐ ์ฌ์ดํธ์ ํ์ ์ ๋ณด๋ฅผ ๋ด์ 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๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
โ ํ์ด
๋ฌธ์ ์๊ตฌ์ฌํญ
์์ผ์ด 3์์ธ ์ฌ์ฑ ํ์์ > ์กฐ๊ฑด1 (DATE_FORMAT() ํจ์ ์ฌ์ฉ)
ID, ์ด๋ฆ, ์ฑ๋ณ, ์๋ ์์ผ์ ์กฐํ
์ ํ๋ฒํธ๊ฐ NULL์ธ ๊ฒฝ์ฐ๋ ์ถ๋ ฅ๋์์์ ์ ์ธ > ์กฐ๊ฑด2 (is null, is not null ํ์ฉ)
๊ฒฐ๊ณผ๋ ํ์ID๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ > ์ ๋ ฌ์กฐ๊ฑด1
SELECT MEMBER_ID,
MEMBER_NAME,
GENDER,
DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE DATE_FORMAT(DATE_OF_BIRTH, '%m') = 03
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID;
WHERE ์กฐ๊ฑด์ ์ DATE_FORMAT() ์ ํฌ๋งท ํํ๋ฅผ
DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') LIKE '%-03-%' ๊ณผ ๊ฐ์ด
LIKE๋ฅผ ํ์ฉํด๋ ์ ๋ต์ด ์ธ์ ๋์๋ค.
* DATE_FORMAT() ํํ์ ์กฐ๊ฑด์ ๋ฌธ๋ฒ ๋ค์ํ๊ฒ ํ์ฉ ๊ฐ๋ฅ.