Я довольно новичок в 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"