PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment sélectionner un identifiant avec un groupe de date maximum par catégorie dans une requête Ecto avec Phoenix ?

Vous pouvez utiliser sous-requête fonction

subquery = from t in "Table1"
      |> select([t], %{categoty: t.category, max_date: max(t.date)})
      |> group_by([t], t.category)

from t in "Table1"
      |> join(:inner, [u], t in subquery(subquery), t.category == u.category and t.max_date == u.date)
      |> Repo.all