# Let the database do the grouping. Example in SQL (MySQL):
# select to_seconds(datetime) DIV (60*60*24) as interval_id, min(datetime), max(datetime), min(temp), avg(temp), max(temp), count(temp) from openweathermap group by interval_id order by interval_id;
- query = db.session.query(func.to_seconds(Sensors.timestamp).op('div')(resolution).label('g'), func.min(Sensors.timestamp), func.mean(Sensors.value),
+ query = db.session.query(func.to_seconds(Sensors.timestamp).op('div')(resolution).label('g'),
+ func.min(Sensors.timestamp).label('timestamp'),
+ func.avg(Sensors.value).label('value'),
Sensors.sensor_id, Sensors.value_type, Sensors.sensor_name)
if sensor_id is not None:
query = query.filter(Sensors.sensor_id == sensor_id)