Off the top of my head (and not sure how optimized)...
select t1.id, t1.score, t1.description
from scoretable t1, (
select id, max(score) as score
from scoretable
group by id
) as t2
where t1.id = t2.id
and t1.score = t2.score
order by t1.id
If you get duplicated rows back, then try using
select distinct t1.id, t1.score, t1.description ...
instead.
Hope that helps.
John
Fip wrote:
Hi,
ho can I select some one restult for type, excluding the rest?
I have something like, as result of a join:
| ID | score | description |
-----------------------------------------------------------------
MG01 56 "textual description1..."
MG02 47 "another text ..."
MG02 55 "textual description, text...." <----
note this
MG02 55 "textual description, text...." <----
note this
MG01 35 "this is a different text...."
MG02 61 "random chars..."
(...)
I know that is possible selecting by grouping if I use an aggregate
function:
select ID,max(score) by table group by ID
but I want the description too, only one description, and I have a very
large dataset, I cannot cycle with more subselections, this require too
much time; also I want to exclude duplicates: only one ID.
What can I do?
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?
http://archives.postgresql.org/