我在Python和SQL Alchemy领域还很陌生,对于我要执行的查询有疑问。
更具体地说,我有此数据列表。每5分钟包含一些措施。 我想做的是基于30分钟的时间戳分组,所以在以下情况下:
- 00:15:00 + 00-> 00:00:00 + 00
- 00:20:00 + 00-> 00:00:00 + 00
- 00:30:00 + 00-> 00:30:00 + 00
- 00:35:00 + 00-> 00:30:00 + 00
- 等
,然后汇总该值上的数据。
现在我有以下代码:
base_query = (
db.query(
MyTable.timestamp,func.max(MyTable.dual).label("max"),func.min(MyTable.dual).label("min"),func.avg(MyTable.dual).label("avg"),func.count(MyTable.id).label("count"),)
.join(Simulation,Simulation.id == MyTable.simulation_id)
.filter(
and_(MyTable.dual > 0,Simulation.scenario_id == scenario_id)
)
.group_by(MyTable.timestamp)
.order_by(MyTable.timestamp)
)
timestamp count avg
"2020-01-13 00:00:00+00" "10" "6454.70683325249"
"2020-01-13 00:05:00+00" "10" "6454.70683325249"
"2020-01-13 00:10:00+00" "10" "6454.70683325249"
"2020-01-13 00:15:00+00" "10" "6454.70683325249"
"2020-01-13 00:20:00+00" "10" "6454.70683325249"
"2020-01-13 00:25:00+00" "10" "6454.70683325249"
"2020-01-13 00:30:00+00" "10" "6454.70683325249"
"2020-01-13 00:35:00+00" "10" "6454.70683325249"
"2020-01-13 00:40:00+00" "10" "6454.70683325249"
"2020-01-13 00:45:00+00" "10" "6454.70683325249"
"2020-01-13 00:50:00+00" "10" "6454.70683325249"
"2020-01-13 00:55:00+00" "10" "6454.70683325249"
"2020-01-13 01:00:00+00" "10" "6454.70683325249"
"2020-01-13 01:05:00+00" "10" "6454.70683325249"
"2020-01-13 01:10:00+00" "10" "6454.70683325249"
"2020-01-13 01:15:00+00" "10" "6454.70683325249"