Day 14. ์ ๋ ฅ ์๋น๋ ์ด๋ ํ๊ท ๊ตฌํ๊ธฐ
https://solvesql.com/problems/moving-average-of-power-consumption/
WITH T1 AS (
SELECT measured_at AS end_at
, ROUND(AVG(zone_quads) OVER(ORDER BY measured_at ROWS BETWEEN 6 PRECEDING AND 1 PRECEDING),2) AS zone_quads
, ROUND(AVG(zone_smir) OVER(ORDER BY measured_at ROWS BETWEEN 6 PRECEDING AND 1 PRECEDING),2) AS zone_smir
, ROUND(AVG(zone_boussafou) OVER(ORDER BY measured_at ROWS BETWEEN 6 PRECEDING AND 1 PRECEDING),2) AS zone_boussafou
FROM power_consumptions AS pc
WHERE measured_at BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00'
)
SELECT *
FROM T1
WHERE zone_quads IS NOT NULL
โPRECEDING ์ ์ฌ์ฉํด์ ๊ฐ์ฅ ๋ ์ฝ๋๊ฐ ๋น์ด์์.
-> WHERE ์ ์ฌ์ฉํด์ NULL์ด ์๋ ๊ฒ๋ง ์ถ์ถ
+) WITH ์ : T1
โAVG() OVER() ์๋์ฐ ํจ์ ์ฌ์ฉํด์ ์ด๋ ํ๊ท ๊ตฌํ๊ธฐ
- PRECEDING ์ฌ์ฉํด์ ๋ฒ์ ์ง์
- PRECEDING, FOLLOWING ์ฌ์ฉํ๋ ค ํ๋๋ฐ FOLLOWING์ด ์ค๋ฅ๋์ PRECEDING๋ง ์ฌ์ฉ
- ๊ทธ๋์ ์์ 6์ผ, ์์ 1์ผ๋ก ํจ
โWHERE ์ ์ BETWEEN ์ฌ์ฉํด์ ์๊ธฐ ์ง์