Postgres specifik (og hurtigste) løsning:
select distinct on (out_id) *
from foo
order by out_id, id desc;
Standard SQL-løsning, der bruger en vinduefunktion (næsthurtigste)
select id, x_part, y_part, out_id, out_idx
from (
select id, x_part, y_part, out_id, out_idx,
row_number() over (partition by out_id order by id desc) as rn
from foo
) t
where rn = 1
order by id;
Bemærk, at begge løsninger kun returnerer hvert id
én gang, selvom der er flere out_id
værdier, der er de samme. Hvis du vil have dem alle returneret, skal du bruge dense_rank()
i stedet for row_number()