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

    ๋ฐ˜์‘ํ˜•

    ๐ŸŒฑ ๋ฌธ์ œ

     

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

    ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

    programmers.co.kr

    0์‹œ๋ถ€ํ„ฐ 23์‹œ๊นŒ์ง€, ๊ฐ ์‹œ๊ฐ„๋Œ€๋ณ„๋กœ ๋ฐœ์ƒํ•œ ์ž…์–‘ ๊ฑด์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

     

    ๐ŸŒฑ ํ’€์ด

    1. ๋ณ€์ˆ˜ ์„ค์ •

    ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MySQL์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    SET @[๋ณ€์ˆ˜๋ช…] := [์ดˆ๊ธฐ๊ฐ’];
    =
    ์—ฐ์‚ฐ์ž๋ฅผ ์จ๋„ ๋˜์ง€๋งŒ ๋น„๊ต์—ฐ์‚ฐ(๊ฐ™๋‹ค)๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ :=๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    SET @hour := -1;
    SELECT (@hour := @hour + 1) AS 'HOUR'
    FROM ANIMAL_OUTS
    WHERE @hour < 23;

    ์œ„์˜ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

     

    2. ์„œ๋ธŒ ์ฟผ๋ฆฌ

    (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT

    ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ์•ž์—์„œ ์„ค์ •ํ•œ @hour ๋ณ€์ˆ˜๊ฐ€ 0์ผ๋•Œ๋ถ€ํ„ฐ 23์ผ ๋•Œ๊นŒ์ง€์˜ ๊ฐ row๋ฅผ ์นด์šดํŠธํ•œ ๊ฐ’์„ COUNT ์ปฌ๋Ÿผ ๊ฐ’์œผ๋กœ SELECT ํ•ฉ๋‹ˆ๋‹ค.

     

    ๐ŸŒฑ ์ฟผ๋ฆฌ

    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;
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€