fix:修改了聚合查询
This commit is contained in:
parent
ffc5278e52
commit
5d4fa3f515
@ -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
|
||||
`
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user