๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง

๐“๐จ๐๐š๐ฒ ๐ˆ ๐‹๐ž๐š๐ซ๐ง 2022.04.14.๋ชฉ

by DevIseo 2022. 4. 14.

TIL : Today I Learn 220414

์˜ค๋Š˜์€ DB์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๋‹ค. DB์˜ ๋ฌธ๋ฒ•์„ ์ตํžˆ๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ ์ค‘ SQL ๊ณ ๋“์  Kit์˜ SELECT, SUM,MAX,MIN,GROUP BY, IS NULL์„ ํ’€์—ˆ๋‹ค. ๊ทธ ์ค‘ GROUP BY์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ์ธ ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2) ๋ฌธ์ œ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์› ๋‹ค. (๋ฐฐ์šฐ์ง€ ์•Š์€ ๋ฌธ๋ฒ•์ด ๋“ฑ์žฅ!)

https://programmers.co.kr/learn/courses/30/lessons/59413

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2)

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

programmers.co.kr

 

์ด ๋ฌธ์ œ์˜ ์ „ ๋ฌธ์ œ๋Š” ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(1) ๋ฌธ์ œ์˜€๋Š”๋ฐ

SELECT HOUR(DATETIME), COUNT(HOUR(DATETIME)) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME)>=9 AND HOUR(DATETIME)<=19
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);

์—ฌ๊ธฐ์„œ ์กฐ๊ฑด์„ ๋‹ฌ์•„์ค€ ๊ฒƒ์ฒ˜๋Ÿผ ์ž…์–‘ ์‹œ๊ฐ ๊ตฌํ•˜๊ธฐ(2) ๋ฌธ์ œ๋„ ํ’€์ดํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ

์ฃผ์–ด์ง„ TABLE์—์„œ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์‹œ๊ฐ๊นŒ์ง€ ์ถœ๋ ฅํ•ด์•ผํ•˜๋‹ค๋ณด๋‹ˆ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ๊ฒฐ๊ตญ ๊ตฌ๊ธ€์— ๊ฒ€์ƒ‰ํ•ด์„œ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ตํ˜”๋‹ค.
๊ทธ๋ž˜์„œ ๋‚˜์˜จ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

SET @HOUR := -1; #๋ณ€์ˆ˜ ์„ ์–ธํ•˜๊ธฐ
SELECT(@HOUR := @HOUR+1) AS HOUR,
(SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR <23;

์—ฌ๊ธฐ์„œ๋Š” `SET`์ด๋ผ๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š”๋ฐ,

`SET`์€ ์–ด๋–ค ๋ณ€์ˆ˜์— ํŠน์ • ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ ์“ฐ๋Š” ๋ช…๋ น์–ด์ด๋‹ค!

 

`SET`์„ ์‚ฌ์šฉ์‹œ ์ฃผ์˜์ ์ด ์žˆ๋Š”๋ฐ, SET์‚ฌ์šฉ์‹œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋Š” '='๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ทธ ์™ธ์—๋Š” ':='๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋˜ํ•œ @๋Š” ๋ณ€์ˆ˜๋ช… ์•ž์— ๋„ฃ์–ด์ค˜์•ผ ํ•œ๋‹ค!

 

๋”ฐ๋ผ์„œ,
์œ„ ์ฝ”๋“œ์˜ @HOUR := -1์€ HOUR์— -1๋ฅผ ๋„ฃ์–ด์ค€๋‹ค๋Š” ์˜๋ฏธ์ด๊ณ , := ๊ธฐํ˜ธ๋กœ ๋Œ€์ž…ํ•ด์ฃผ๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.
๊ธฐ์กด HOUR ๋ณ€์ˆ˜๋Š” -1์ธ๋ฐ ๊ทธ HOUR๋ณ€์ˆ˜๋ฅผ +1๋กœ ๋Œ€์ž…ํ•ด๊ฐ€๋ฉด์„œ WHERE์ ˆ์ด 23๋ฏธ๋งŒ์ผ ๋•Œ ๊นŒ์ง€ ์ด๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.
๊ทธ ๋‹ค์Œ์œผ๋กœ COUNTํ•œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด ์ค˜์•ผํ•˜๋Š”๋ฐ,
SELECT๋ฌธ์œผ๋กœ ANIMAL_OUTํ…Œ์ด๋ธ”์—์„œ HOUR(DATETIME)์ด @HOUR๊ณผ ๊ฐ™์„ ๋•Œ COUNTํ•ด ์ด๋ฅผ ๋„ฃ์–ด์ค€๋‹ค!

๋Œ“๊ธ€