λ¬Έμ
π MySQL λ‘ νμ΄
π λ¬Έμ λ§ν¬ :
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ 맀μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
π λ¬Έμ μ€λͺ :
보νΈμμμλ λͺ μμ μ μμ΄ κ°μ₯ νλ°νκ² μΌμ΄λλμ§ μμλ³΄λ € ν©λλ€. 0μλΆν° 23μκΉμ§, κ° μκ°λλ³λ‘ μ μμ΄ λͺ 건μ΄λ λ°μνλμ§ μ‘°ννλ SQLλ¬Έμ μμ±ν΄μ£ΌμΈμ. μ΄λ κ²°κ³Όλ μκ°λ μμΌλ‘ μ λ ¬ν΄μΌ ν©λλ€.
π ν μ΄λΈ :
ANIMAL_OUTS ν μ΄λΈμ λλ¬Ό 보νΈμμμ μ μ λ³΄λΈ λλ¬Όμ μ 보λ₯Ό λ΄μ ν μ΄λΈμ λλ€. ANIMAL_OUTS ν μ΄λΈ ꡬ쑰λ λ€μκ³Ό κ°μΌλ©°, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOMEλ κ°κ° λλ¬Όμ μμ΄λ, μλ¬Ό μ’ , μ μμΌ, μ΄λ¦, μ±λ³ λ° μ€μ±ν μ¬λΆλ₯Ό λνλ λλ€.
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
νμ΄
쿼리)
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 @λ³μλͺ = λ³μκ°;
μΌλ‘ @(μ³μ¬μΈ)λ€μ λ³μλͺ μ μ ν΄μ£Όκ³ ν΄λΉ λ³μμ κ°μ μ μΈνλ©΄ λλ€. κ·Έλ¦¬κ³ μ΄νμ SELECTλ¬Έκ³Ό ꡬλΆλκΈ° μν΄ ;(μΈλ―Έμ½λ‘ )μ νμλ€.
μ΄λ κ² μ μΈνκ³ λμ SELECTλ¬Έμμ @λ³μλͺ μΌλ‘ μ¬μ©μ΄ κ°λ₯νκ²λκ³
λ§μ½ SELECTλ¬Έ μμμ λ³μμ κ°μ λ€μ λμ ν΄μΌ νλ€λ©΄ λ¨μν = (μ΄ν)λ§ μ¬μ©νλ κ² μλλΌ := (μ½λ‘ + μ΄ν)μ ν΄μΌ λ³ν κ°μ΄ λμ μ΄ λλ€.
κ·Έλμ μ΄λ₯Ό μ°Έκ³ ν΄μ μλ μ§μλ¬Έμ νμ ν΄λ³΄λ©΄ μλ κ² λλ€.
SET @HOUR = -1; # @HOURμ΄λ λ³μμ -1μ λμ
SELECT
(@HOUR := @HOUR + 1) AS HOUR, # @HOURμ @HOURμμ +1ν κ°μ λ€μ λμ
ν΄μ 0λΆν° μΆλ ₯
(SELECT
COUNT(*) # 7λΌμΈμ μΌμΉνλ μκ° κ²λ§ μ‘°ννλ μ 체쑰ν COUNTνλ©΄ κ·Έμκ°λ μ
μλ μ
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) = @HOUR) AS COUNT # κ·Έλ¦¬κ³ μ‘°κ±΄μμλ μ΄ @λ³μμ μΌμΉνλ 쑰건
FROM ANIMAL_OUTS
WHERE @HOUR < 23; # μ΄ μ‘°κ±΄μΌλ‘ @HOURμ 22κΉμ§μ§λ§ SELECTλ¬Έ μμμ +1νλ ꡬ문λλ¬Έμ 23κΉμ§ μΆλ ₯