fix:修改了聚合查询

This commit is contained in:
fengyarnom 2025-05-15 17:34:35 +08:00
parent ffc5278e52
commit 5d4fa3f515

View File

@ -56,27 +56,18 @@ func (dao *SensorDAO) GetAggregatedData(start, end time.Time, interval string) (
// 使用子查询和时间桶来实现聚合
query := `
WITH time_buckets AS (
SELECT
DATE_FORMAT(
DATE_SUB(timestamp, INTERVAL MOD(MINUTE(timestamp), ?) MINUTE),
'%Y-%m-%dT%H:%i:00'
) AS bucket_time,
AVG(temperature) AS temp,
MAX(rainfall) - MIN(rainfall) AS rain,
AVG(humidity) AS hum,
AVG(wind_speed) AS wind
ROUND(AVG(temperature)/10, 1) AS avg_temp,
MAX(rainfall) - MIN(rainfall) AS rainfall,
ROUND(AVG(humidity)/10, 1) AS avg_humidity,
ROUND(AVG(wind_speed)/10, 1) AS avg_wind_speed
FROM sensor_data
WHERE timestamp BETWEEN ? AND ?
GROUP BY bucket_time
)
SELECT
bucket_time,
ROUND(temp/10, 1) AS avg_temp,
rain AS rainfall,
ROUND(hum/10, 1) AS avg_humidity,
ROUND(wind/10, 1) AS avg_wind_speed
FROM time_buckets
ORDER BY bucket_time DESC
`