summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
92df2c1)
needs a conversion to/from unix timestamp
cf. https://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html
and https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
# 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'),
# 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).label('timestamp'),
+ func.from_unixtime(func.avg(func.unix_timestamp(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:
func.avg(Sensors.value).label('value'),
Sensors.sensor_id, Sensors.value_type, Sensors.sensor_name)
if sensor_id is not None:
# 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(OpenWeatherMap.datetime).op('div')(resolution).label('g'),
# 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(OpenWeatherMap.datetime).op('div')(resolution).label('g'),
- func.min(OpenWeatherMap.datetime).label('datetime'),
+ func.from_unixtime(func.avg(func.unix_timestamp(OpenWeatherMap.datetime))).label('datetime'),
func.avg(OpenWeatherMap.temp).label('temp'),
OpenWeatherMap.cityid)
OpenWeatherMap.query.filter(OpenWeatherMap.cityid == cityid)
func.avg(OpenWeatherMap.temp).label('temp'),
OpenWeatherMap.cityid)
OpenWeatherMap.query.filter(OpenWeatherMap.cityid == cityid)