编辑
2022-12-27
🧰语言-python
00
请注意,本文编写于 905 天前,最后修改于 225 天前,其中某些信息可能已经过时。

利用subquery()实现分组获取最新的数据

python
analogs = 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 许可协议。转载请注明出处!