WITH RECURSIVE(MysQL 5.8μ΄μ μ§μ)
- λ©λͺ¨λ¦¬ μμ κ°μμ ν μ΄λΈμ μ μ₯
- μ€μ λ‘ ν μ΄λΈμ μμ±νκ±°λ λ°μ΄ν° μ½μ (INSERT)μ νμ§ μμλ κ°μμ ν μ΄λΈμ λ§λ€ μ μλ€.(μ¬κ· 쿼리 μ΄μ©)
WITH RECURSIVE ν
μ΄λΈλͺ
AS(
SELECT μ΄κΈ°κ° AS 컬λΌλͺ
UNION ALL
SELECT μ»¬λΌ κ³μ°μ FROM ν
μ΄λΈλͺ
WHERE μ μ½μ‘°κ±΄
)
μμ
WITH RECURSIVE cte AS(
SELECT 0 AS h
UNION ALL
SELECT h + 1 FROM cte WHERE h < 23
)
SELECT * FROM CTE
μλμ κ°μ κ²°κ³Όκ° λμ΅λλ€. (23κΉμ§ μΆλ ₯)
μ΄λ κ² μ¬κ· 쿼리λ₯Ό νμ©νλ μ΄μ λ
μλ₯Ό λ€μ΄, κ°κ³ μλ ν
μ΄λΈμλ 7μλΆν° 21μκΉμ§μ λ°μ΄ν°λ§ μ‘΄μ¬ν λ, μκ°κ°μΌλ‘ Group by ν μ λ ¬ν΄λ
λ°μ΄ν°κ° κ°κ³ μμ§ μμ μκ°λμ κ°μ μΆλ ₯ν μ μμ΅λλ€.
κ·Έλ¬λ λ§μ½ '0μ'μλ λͺκ°, '1μ'μλ λͺκ° μ κ°μ΄ λ°μ΄ν°μ μ‘΄μ¬νμ§ μλ μκ°λλ₯Ό νννκ³ μΆμ λ
μμ κ°μ κ°μμ μκ° ν
μ΄λΈμ λ§λ€κ³ JOINμ ν΅ν΄ λ°μ΄ν°κ° κ°μ§ μλ μκ°λλ ννν΄μ€ μ μμ΅λλ€.
WITH RECURSIVE cte AS(
SELECT 0 AS h
UNION ALL
SELECT h + 1 FROM cte WHERE h < 23
)
SELECT c.h, COUNT(ANIMAL_ID)
FROM cte AS c
LEFT JOIN ANIMAL_OUTS AS a ON c.h = HOUR(a.DATETIME)
GROUP BY c.h;
μλμ κ°μ΄ λ°μ΄ν°κ° κ°κ³ μμ§ μμ μκ°λμλ μΉ΄μ΄νΈκ°μ 0μΌλ‘ νμνλ©° λνλΌ μ μκ² λ©λλ€.
μ°Έκ³ : νλ‘κ·Έλλ¨Έμ€
μ°Έκ³ : μ¬κ· 쿼리 κ³μΈ΅κ΅¬μ‘°
'πΏ Data > μ΄λͺ¨μ λͺ¨' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ₯λ¬λ]μμ ν μκ³ λ¦¬μ¦ (0) | 2022.02.23 |
---|---|
[λ₯λ¬λ]νΌμ νΈλ‘ , μ λ ₯μΈ΅/μλμΈ΅/μΆλ ₯μΈ΅, νμ±ν ν¨μ κ°λ μ 리 (0) | 2022.02.22 |
MySQL_IF, IFNULL - 쑰건λ체 (0) | 2022.02.01 |
if __name__ == '__main__' : μ κ°λ (0) | 2022.01.30 |
__init.py__μ νμ© (0) | 2022.01.28 |