Why does "group by" need to match select fields?

Поиск
Список
Период
Сортировка
От Omar Eljumaily
Тема Why does "group by" need to match select fields?
Дата
Msg-id 45E61BF6.5090102@omnicode.com
обсуждение исходный текст
Ответы Re: Why does "group by" need to match select fields?  (Bill Moran <wmoran@collaborativefusion.com>)
Re: Why does "group by" need to match select fields?  (Bruno Wolff III <bruno@wolff.to>)
Список pgsql-general
Sorry if this isn't exactly postgresql specific.  I periodically run
into this problem, and I'm running into it now.  I'm wondering if
there's something about "group by" that I don't understand.  As an
example what I'd want to do is return the "id" value for the check to
each payee that has the highest amount.  It seems like there's no
problem with ambiguity in logic, but postgresql + other sql servers balk
at it.  The group by fields need to explicitly match the select fields
with the exception of the aggregate function(s?).

create table checks
{
    id serial,
    payee text,
    amount double
};

select max(amount), payee, id from checks group by payee;

Why won't the above work?  Is there another way to get the id for the
record with the highest amount for each payee?

Thanks.


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

Предыдущее
От: Bill Moran
Дата:
Сообщение: Re: why can't I increase shared buffers to higher value?
Следующее
От: Paul Lambert
Дата:
Сообщение: PG periodic Error on W2K