๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(SQL)

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

by carrot0911 2024. 11. 13.

๋ฌธ์ œ ์„ค๋ช…

https://school.programmers.co.kr/learn/courses/30/lessons/132202

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

๋‹ค์Œ์€ ์ข…ํ•ฉ๋ณ‘์›์˜ ์ง„๋ฃŒ ์˜ˆ์•ฝ์ •๋ณด๋ฅผ ๋‹ด์€ APPOINTMENT ํ…Œ์ด๋ธ” ์ž…๋‹ˆ๋‹ค.
APPOINTMENT ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ APNT_YMDAPNT_NOPT_NOMCDP_CDMDDR_IDAPNT_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์›”์˜ˆ์•ฝ๊ฑด์ˆ˜'๋กœ ์ง€์ •ํ•ด์ฃผ์‹œ๊ณ  ๊ฒฐ๊ณผ๋Š” ์ง„๋ฃŒ๊ณผ๋ณ„ ์˜ˆ์•ฝํ•œ ํ™˜์ž ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ณ , ์˜ˆ์•ฝํ•œ ํ™˜์ž ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์ง„๋ฃŒ๊ณผ ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

์˜ˆ์‹œ

APPOINTMENT ํ…Œ์ด๋ธ”์ด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ

APNT
_YMD
APNT
_NO
PT_NO MCDP
_CD
MDDR_ID APNT_
CNCL_
YN
APNT_
CNCL_
YMD
2022-04-14
09:30:00.
000000
47 PT22000064 GS DR20170123 N NULL
2022-04-15
10:30:00.
000000
48 PT22000065 OB DR20100231 N NULL
2022-05-15
17:30:00.
000000
49 PT22000086 OB DR20100231 N NULL
2022-05-18
10:30:00.
000000
52 PT22000019 GS DR20100039 N NULL
2022-05-19
12:00:00.
000000
53 PT22000020 FM DR20010112 N NULL
2022-05-22
08:30:00.
000000
54 PT22000021 GS DR20100039 N NULL
2022-05-04
10:30:00.
000000
56 PT22000023 FM DR20090112 N NULL
2022-05-14
15:30:00.
000000
57 PT22000074 CS DR20200012 N NULL
2022-05-24
15:30:00.
000000
58 PT22000085 CS DR20200012 N NULL
2022-05-28
10:00:00.
000000
60 PT22000092 OS DR20100031 N NULL

SQL์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง„๋ฃŒ๊ณผ์ฝ”๋“œ 5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜
OB 1
OS 1
CS 2
FM 2
GS 2


๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

SELECT MCDP_CD AS '์ง„๋ฃŒ๊ณผ์ฝ”๋“œ', count(*) AS '5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜'
FROM APPOINTMENT
WHERE APNT_YMD LIKE '2022-05%'
GROUP BY ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ
ORDER BY 5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜, ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ;

์ฝ”๋“œ ์„ค๋ช…

  • SELECT MCDP_CD AS '์ง„๋ฃŒ๊ณผ์ฝ”๋“œ', count(*) AS '5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜' : MCDP_CD ์ปฌ๋Ÿผ์„ '์ง„๋ฃŒ๊ณผ์ฝ”๋“œ'๋ผ๋Š” ์ปฌ๋Ÿผ๋ช…์œผ๋กœ, ์˜ˆ์•ฝ ๊ฑด์ˆ˜๋ฅผ '5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜' ์ปฌ๋Ÿผ๋ช…์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
  • FROM APPOINTMENT : APPOINTMENT ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
  • WHERE APNT_TMD LIKE '2022-05%' : APNT_TMD ์ปฌ๋Ÿผ์—์„œ 2022๋…„ 5์›”์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
  • GROUP BY ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ : ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค.
  • ORDER BY 5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜, ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ : 5์›”์˜ˆ์•ฝ๊ฑด์ˆ˜ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„, ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋“ค์€ ์ง„๋ฃŒ๊ณผ์ฝ”๋“œ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์‹œ ํ•œ๋ฒˆ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ๋‹ค.