Growth ๐ŸŒณ/Practice ๐Ÿ’ป

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ง„๋ฃŒ๊ณผ๋ณ„ ์ด ์˜ˆ์•ฝ ํšŸ์ˆ˜ ์ถœ๋ ฅํ•˜๊ธฐ

์ธ” 2022. 11. 23. 01:31

๐Ÿ“ข ๋ณธ ํฌ์ŠคํŒ…์— ํ™œ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฌธ์ œ ๋ฐ ์ž๋ฃŒ ์ถœ์ฒ˜๋Š”

       ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต,   
      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