How about:
select * from <Table> where (id, val2) in ( select id, max(val2) from
<Table> group by id);
JLL
Albrecht Berger wrote:
>
> Hello,
> I have a problem, which I'm not able to solve with a simple query :
>
> I need a resultset with distinct id's, but the max val2 of each id.
> I tried to group by id, but though I need the pk in my resultset
> I have to group it too, which "destroys" the group of val2.
>
> Can this be done without a huge query ?
>
> Table :
> pk id val1 val2
> 1 1 2 3
> 2 1 2 4
> 3 2 1 1
> 4 1 0 5
> 5 2 1 8
>
>
> Needed Result :
> pk id val1 val2
> 4 1 0 5
> 5 2 1 8
>
>
> Thx
> berger
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org