| From: | Jack Christensen <jack(at)jackchristensen(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Picking the first of an order in an aggregate query |
| Date: | 2012-12-31 14:43:39 |
| Message-ID: | 50E1A49B.3000905@jackchristensen.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 12/31/2012 8:33 AM, Robert James wrote:
> I have a query
>
> SELECT grouping_field, MIN(field_a), MIN(field_b)
> FROM ...
> GROUP BY grouping_field
>
> But, instead of picking the MIN field_a and MIN field_b, I'd like to
> pick field_a and field_b from the first record, according to an order
> I'll specify. In pseudo-SQL, it would be something like this:
>
> SELECT grouping_field, FIRST(field_a), FIRST(field_b)
> FROM ...
> ORDER BY field_c DESC, field_d ASC, myfunc(field_e) ASC
> GROUP BY grouping_field
>
> How can I do that with Postgres?
>
>
select distinct on (grouping_field), field_a, field_b
from ...
order by grouping_field, field_a asc, field_b asc
http://www.postgresql.org/docs/9.2/static/sql-select.html#SQL-DISTINCT
--
Jack Christensen
http://jackchristensen.com/
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adrian Klaver | 2012-12-31 14:54:59 | Re: rights for schema |
| Previous Message | Robert James | 2012-12-31 14:33:25 | Picking the first of an order in an aggregate query |