[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv2. ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(1) [GROUP BY]

2022. 9. 26. 08:31ใ†์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_2022

728x90

 

๋ฌธ์ œ ์„ค๋ช…

ANIMAL_OUTS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์—์„œ ์ž…์–‘ ๋ณด๋‚ธ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ANIMAL_OUTS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME๋Š” ๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ์ž…์–‘์ผ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

NAME                                                                                         TYPE                                                  NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_OUTCOME VARCHAR(N) FALSE

๋ณดํ˜ธ์†Œ์—์„œ๋Š” ๋ช‡ ์‹œ์— ์ž…์–‘์ด ๊ฐ€์žฅ ํ™œ๋ฐœํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š”์ง€ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. 09:00๋ถ€ํ„ฐ 19:59๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์ž…์–‘์ด ๋ช‡ ๊ฑด์ด๋‚˜ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ ๊ฒฐ๊ณผ๋Š” ์‹œ๊ฐ„๋Œ€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ

SQL๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HOUR                                                                                      COUNT
9 1
10 2
11 13
12 10
13 14
14 9
15 7
16 10
17 12
18 16
19 2

 

 

๋‚˜์˜ ํ’€์ด [MySQL]

SELECT DATE_FORMAT(DATETIME, '%H') AS HOUR, COUNT(*)  AS COUNT 
FROM ANIMAL_OUTS 
GROUP BY HOUR 
HAVING HOUR >= 9 AND HOUR < 20  
ORDER BY HOUR

๋ณดํ˜ธ์†Œ์—์„œ ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ์ž…์–‘๋˜๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋ฅผ ํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ผ๋‹จ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ธฐ ์œ„ํ•ด HOUR๋ฅผ DATE_FORMAT ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹œ๊ฐ„๋งŒ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜ํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ GROUP BY๋ฅผ HOUR์— ๋งž์ถฐ์„œ ํ•˜๋Š”๋ฐ 9์‹œ ~ 19:59๋กœ  ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ HAVING ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•ด์ฃผ๊ณ  HOUR๋กœ ์ •๋ ฌํ•ด์คฌ๋”๋‹ˆ ์›ํ•˜๋Š” ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90