From: | Ezequiel Tolnay <mail(at)etolnay(dot)com(dot)ar> |
---|---|
To: | Dave Roe <davidroe(at)email(dot)com> |
Subject: | Re: SQL group select question |
Date: | 2005-04-14 09:20:23 |
Message-ID: | 425E35D7.7050300@etolnay.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> I have a table with a unique id, a name, a number and a value, for example:
>
> id name numb value
> -- ---- ---- -----
> 1 tom 10 1000
> 2 dick 10 2000
> 3 harry 10 3000
> 4 dick 21 4000
> 5 harry 21 5000
> 6 harry 32 6000
>
> As you can see, tom has 1 entry, dick has 2 and harry has 3. I would
> like to select 3 records (one for each tom, dick and harry), based on
> the associated number (id 1 should be chosen, because there is no other
> 'tom' record, id 4 should be chosen over id 2, because 21 > 10, and id 6
> over ids 3 and 5, because 32 > 10 or 21). The value column is the data
> that I am interested in:
SELECT t.id, t.value
FROM (SELECT name, MAX(numb) as numb FROM test1) AS s
JOIN test1 t ON (t.name = s.name AND t.numb = s.numb);
> id value
> -- -----
> 6 6000
> 4 4000
> 1 1000
Cheers,
Ezequiel Tolnay
etolnay(at)gbtech(dot)com(dot)au
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Joseph Krogh | 2005-04-14 10:48:21 | Very low performance on table with only 298 rows |
Previous Message | Matt Fulford | 2005-04-13 17:28:36 | SQL subquery (count distinct) - Any Ideas? |