O que você parece estar procurando é o
DISTINCT ON ... ORDER BY
idioma no Postgresql para selecionar greatest-n -por grupo
resultados (N =1 ). Então, em vez de agrupar e agregar apenas event_list = Table.query.\
distinct(Table.name).\
filter_by(**filter_by_query).\
filter(*queries).\
order_by(Table.name, Table.timestamp.desc()).\
all()
Isso acabará selecionando linhas "agrupadas" por nome, com o maior valor de carimbo de data/hora.
Você não deseja usar o asterisco na maioria das vezes, não no código do aplicativo, a menos que esteja fazendo consultas ad-hoc manuais. O asterisco é basicamente "todas as colunas do
FROM
table/relation", o que pode quebrar suas suposições mais tarde, se você adicionar colunas, reordená-las e tal. Caso queira ordenar as linhas resultantes com base no timestamp no resultado final, você pode usar, por exemplo,
Query.from_self()
para transformar a consulta em uma subconsulta e ordenar na consulta anexa: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()