利用subquery()实现分组获取最新的数据
pythonanalogs = center_session.query(Analog).join(Module,Module.id==Analog.module_id).filter(Module.model=='RobotModel').all()
analog_map = {i.id:(i.name,i.descr,i.unit) for i in analogs}
his_analog_sub =his_session.query(AnalogValue.analog_id,func.max(AnalogValue.ts).label('ts')).filter(AnalogValue.guid==guid).group_by(AnalogValue.analog_id).subquery()
his_analog=his_session.query(AnalogValue.analog_id,AnalogValue.value,AnalogValue.ts).filter(AnalogValue.ts==his_analog_sub.c.ts,AnalogValue.analog_id==his_analog_sub.c.analog_id).all()
for item in his_analog:
if analog_map.get(item[0]):
all.append({'name':analog_map[item[0]][0],'descr':analog_map[item[0]][1],'value':round(item[1],2),'timestamp':str(item[2]),'unit':analog_map[item[0]][2]})
本文作者:Eric
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!