From: | "Aaron Bono" <postgresql(at)aranya(dot)com> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Am I crazy or is this SQL not possible |
Date: | 2006-06-02 01:44:18 |
Message-ID: | bf05e51c0606011844s5553241ev144934da7e52f5f0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Is this SQL-99 compliant or a PostgreSQL specific query? I really like it
and have never seen this before.
-Aaron
On 6/1/06, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>
> "Collin Peters" <cadiolis(at)gmail(dot)com> writes:
> > What I would like to do is simply get the last date_sent and it's
> > status for every broadcast. I can't do a GROUP BY because I can't put
> > an aggregate on the status column.
>
> You missed the key idea about how to use DISTINCT ON.
>
> SELECT DISTINCT ON (email_broadcast_id) *
> FROM email_broadcast_history
> ORDER BY email_broadcast_id, date_sent DESC
>
> You order by the DISTINCT ON fields, then one or more additional fields
> to select the representative row you want within each DISTINCT ON group.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-06-02 02:41:17 | Re: Am I crazy or is this SQL not possible |
Previous Message | David Clarke | 2006-06-02 01:19:25 | Re: Table design question |