# 링크
- solvesql Advent of SQL 2024: https://solvesql.com/collections/advent-of-sql-2024/
- 14일차 - 전력 소비량 이동 평균 구하기: https://solvesql.com/problems/moving-average-of-power-consumption/
# 풀이
SELECT
DATETIME(measured_at, '+10 minutes') AS end_at,
ROUND(AVG(zone_quads) OVER (
ORDER BY measured_at
ROWS BETWEEN 5 PRECEDING AND CURRENT ROW
), 2) AS zone_quads,
ROUND(AVG(zone_smir) OVER (
ORDER BY measured_at
ROWS BETWEEN 5 PRECEDING AND CURRENT ROW
), 2) AS zone_smir,
ROUND(AVG(zone_boussafou) OVER (
ORDER BY measured_at
ROWS BETWEEN 5 PRECEDING AND CURRENT ROW
), 2) AS zone_boussafou
FROM power_consumptions
WHERE measured_at BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00'
- SELECT
- DATETIME(measured_at, '+10 minutes') AS end_at: measured_at 컬럼의 값에 10분을 더한 시각을 구하고, end_at으로 저장한다.
- ROUND(AVG(zone_quads) OVER (ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW), 2) AS zone_quads: zone_quads의 평균값을 구하고, 데이터를 measured_at을 기준을 오름차순 정렬한 후, 현재 행을 포함하여 이전 5개 행을 대상으로(1시간에 해당하는 범위) 이동 평균을 계산하여 zone_quads로 저장한다.
- ROUND(AVG(zone_smir) OVER (ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW), 2) AS zone_smir: zone_smir의 평균값을 구하고, 데이터를 measured_at을 기준을 오름차순 정렬한 후, 현재 행을 포함하여 이전 5개 행을 대상으로(1시간에 해당하는 범위) 이동 평균을 계산하여 zone_smir로 저장한다.
- ROUND(AVG(zone_boussafou) OVER (ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW), 2) AS zone_boussafou: zone_boussafou의 평균값을 구하고, 데이터를 measured_at을 기준을 오름차순 정렬한 후, 현재 행을 포함하여 이전 5개 행을 대상으로(1시간에 해당하는 범위) 이동 평균을 계산하여 zone_boussafou로 저장한다.
- FROM power_consumptions: power_consumptions 테이블에서 데이터를 가져온다.
- WHERE measured_at BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00': measured_at의 값이 2017-01-01 00:00:00부터 2017-02-01 00:00:00까지의 범위 내에 있는 데이터만 선택한다.
728x90
'SQL > solvesql Advent of SQL 2024' 카테고리의 다른 글
[SQL] solvesql Advent of SQL 2024 16일차 (0) | 2024.12.17 |
---|---|
[SQL] solvesql Advent of SQL 2024 15일차 (2) | 2024.12.16 |
[SQL] solvesql Advent of SQL 2024 13일차 (4) | 2024.12.13 |
[SQL] solvesql Advent of SQL 2024 12일차 (0) | 2024.12.12 |
[SQL] solvesql Advent of SQL 2024 11일차 (0) | 2024.12.11 |