๐ข ๋ณธ ํฌ์คํ ์ ํ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฌธ์ ๋ฐ ์๋ฃ ์ถ์ฒ๋
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต,
https://school.programmers.co.kr/learn/challenges?page=1&languages=mysql%2Coracle์์ ๋ฐํ๋๋ค.
โ ๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ค์์ ์ข
ํฉ๋ณ์์ ์ง๋ฃ ์์ฝ์ ๋ณด๋ฅผ ๋ด์ APPOINTMENT ํ
์ด๋ธ ์
๋๋ค.
APPOINTMENT ํ
์ด๋ธ์ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_ CNCL_YN, APNT _CNCL_YMD๋ ๊ฐ๊ฐ ์ง๋ฃ์์ฝ์ผ์, ์ง๋ฃ์์ฝ๋ฒํธ, ํ์๋ฒํธ, ์ง๋ฃ๊ณผ์ฝ๋, ์์ฌID, ์์ฝ์ทจ์์ฌ๋ถ, ์์ฝ์ทจ์๋ ์ง๋ฅผ ๋ํ๋
๋๋ค.
Column name | Type | Nullable |
APNT_YMD | TIMESTAMP | FALSE |
APNT_NO | NUMBER(5) | FALSE |
PT_NO | VARCHAR(10) | FALSE |
MCDP_CD | VARCHAR(6) | FALSE |
MDDR_ID | VARCHAR(10) | FALSE |
APNT_CNCL_YN | VARCHAR(1) | TRUE |
APNT_CNCL_YMD | DATE | TRUE |
๋ฌธ์
APPOINTMENT ํ ์ด๋ธ์์ 2022๋ 5์์ ์์ฝํ ํ์ ์๋ฅผ ์ง๋ฃ๊ณผ์ฝ๋ ๋ณ๋ก ์กฐํํ๋ SQL๋ฌธ์ ์์ฑํด์ฃผ์ธ์. ์ด๋, ์ปฌ๋ผ๋ช ์ '์ง๋ฃ๊ณผ ์ฝ๋', '5์์์ฝ๊ฑด์'๋ก ์ง์ ํด์ฃผ์๊ณ ๊ฒฐ๊ณผ๋ ์ง๋ฃ๊ณผ๋ณ ์์ฝํ ํ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ , ์์ฝํ ํ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ง๋ฃ๊ณผ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํด์ฃผ์ธ์.
โ ํ์ด
๋ฌธ์ ์๊ตฌ์ฌํญ
2022๋ 5์์ ์์ฝํ ํ์ ์๋ฅผ ์ง๋ฃ๊ณผ์ฝ๋ ๋ณ๋ก ์กฐํ > ์กฐ๊ฑด1 (LIEK '๋ฌธ์์ด%' ์ฌ์ฉ)
์ปฌ๋ผ๋ช ์ '์ง๋ฃ๊ณผ ์ฝ๋', '5์์์ฝ๊ฑด์'๋ก ์ง์ > ์กฐ๊ฑด2
๊ฒฐ๊ณผ๋ ์ง๋ฃ๊ณผ๋ณ ์์ฝํ ํ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ > ์ ๋ ฌ์กฐ๊ฑด1
์์ฝํ ํ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ง๋ฃ๊ณผ ์ฝ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ > ์ ๋ ฌ์กฐ๊ฑด2
SELECT MCDP_CD AS ์ง๋ฃ๊ณผ์ฝ๋
, COUNT(*) AS 5์์์ฝ๊ฑด์
FROM APPOINTMENT
WHERE APNT_YMD LIKE '2022-05-%'
GROUP BY MCDP_CD
ORDER BY 2, 1
๋๋ ์์ฝ์ผ์ ์ปฌ๋ผ์ด DATE์ธ ์ ์ ๊ณ ๋ คํด์ DATE_FORMAT()ํจ์ ์ฌ์ฉํด์ ํ์ดํ ์ ์๋ค.
SELECT MCDP_CD AS ์ง๋ฃ๊ณผ์ฝ๋
, COUNT(*) AS 5์์์ฝ๊ฑด์
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, '%Y-%m') = '2022-05'
GROUP BY MCDP_CD
ORDER BY 2, 1