Det, du ser ud til at være ude efter, er DISTINCT ON ... ORDER BY
formsprog i Postgresql for at vælge greatest-n -pr-gruppe
resultater (N =1 ). Så i stedet for bare at gruppere og aggregere
event_list = Table.query.\
distinct(Table.name).\
filter_by(**filter_by_query).\
filter(*queries).\
order_by(Table.name, Table.timestamp.desc()).\
all()
Dette vil ende med at vælge rækker "grupperet" efter navn, der har den største tidsstempelværdi.
Du ønsker ikke at bruge stjernen det meste af tiden, ikke i din applikationskode alligevel, medmindre du laver manuelle ad hoc-forespørgsler. Stjernen er grundlæggende "alle kolonner fra FROM
tabel/relation", som måske vil bryde dine antagelser senere, hvis du tilføjer kolonner, omorganiserer dem og sådan.
Hvis du gerne vil bestille de resulterende rækker baseret på tidsstempel i det endelige resultat, kan du f.eks. bruge Query.from_self()
for at omdanne forespørgslen til en underforespørgsel, og bestille i den vedlagte forespørgsel:
event_list = Table.query.\
distinct(Table.name).\
filter_by(**filter_by_query).\
filter(*queries).\
order_by(Table.name, Table.timestamp.desc()).\
from_self().\
order_by(Table.timestamp.desc()).\
all()