Am I crazy or is this SQL not possible

Поиск
Список
Период
Сортировка
От Collin Peters
Тема Am I crazy or is this SQL not possible
Дата
Msg-id df01c91b0606011043g61328d6habaee8fa037a5ccf@mail.gmail.com
обсуждение исходный текст
Ответы Re: Am I crazy or is this SQL not possible  (Oisin Glynn <me@oisinglynn.com>)
Re: Am I crazy or is this SQL not possible  ("Aaron Bono" <postgresql@aranya.com>)
Re: Am I crazy or is this SQL not possible  (Yasir Malik <ymalik@cs.stevens.edu>)
Re: Am I crazy or is this SQL not possible  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Am I crazy or is this SQL not possible  (Patrick Jacquot <patrick.jacquot@anpe.fr>)
Список pgsql-sql
I am having some serious mental block here.  Here is the abstract
version of my problem.  I have a table like this:

unique_id (PK)   broadcast_id   date_sent      status
1                      1                     2005-04-04    30
2                      1                     2005-04-01     30
3                      1                     2005-05-20     10
4                      2                     2005-05-29     30

So it is a table that stores broadcasts including the broadcast_id,
the date sent, and the status of the broadcast.

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.

SELECT MAX(date_sent), status
FROM broadcast_history
GROUP BY broadcast_id

How do I get the status for the most recent date_sent using GROUP BY?

DISTINCT also doesn't work

SELECT DISTINCT ON (email_broadcast_id) *
FROM email_broadcast_history
ORDER BY date_sent

As you have to have the DISTINCT fields matching the ORDER BY fields.
I have to ORDER BY date_sent, but I can't do a DISTINCT on date_sent

I keep thinking am I missing something.  Does anybody have any ideas?


В списке pgsql-sql по дате отправления:

Предыдущее
От: postgres@jal.org
Дата:
Сообщение: Re: Table design question
Следующее
От: "codeWarrior"
Дата:
Сообщение: Re: Table design question