наверное что-то типа такого, правда придется поля явно перечислить:
q = from bcs in "banner_channel_status", select: %{rn: over(rank(), partition_by: [bcs.channel_id, bcs.banner_id], order_by: [desc: bcs.status_updated_at])}
q1 = from q in subquery(q) , select: q.rn
Repo.to_sql(:all, q1)
# => {"SELECT s0.\"rn\" FROM (SELECT rank() OVER (PARTITION BY b0.\"channel_id\", b0.\"banner_id\" ORDER BY b0.\"status_updated_at\" DESC) AS \"rn\" FROM \"banner_channel_status\" AS b0) AS s0",
[]}
не, так не работает, из-за наличия в выборке поля rn экто не может сконвертить запись в схему
вот такой вариант еще пробовал, тоже не работает
sub = from bc in query, select: [over(rank(), partition_by: [bc.channel_id, bc.banner_id], order_by: [desc: bc.status_updated_at]), bc]
from [rank, bc] in subquery(sub) , select: bc