Re: Aggregates, group, and order by

Поиск
Список
Период
Сортировка
От Michael Glaesemann
Тема Re: Aggregates, group, and order by
Дата
Msg-id 175BE1EB-3022-4C4F-96DB-4A9F3FAF455A@myrealbox.com
обсуждение исходный текст
Ответ на Re: Aggregates, group, and order by  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Aggregates, group, and order by  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
On Nov 7, 2005, at 23:24 , Tom Lane wrote:

> Strictly speaking, you need this:
>
>     select bar_id, array_accum(foo_value) from
>     (select * from ordered_foo order by bar_id, foo_pos) as ss
>     group by bar_id order by bar_id;
>
> ie, sort the subselect by the grouping key of the outer query, then
> by the thing that should control the aggregation order within groups.
>
> The way Joe shows will work only if the planner chooses to use a hash
> aggregate plan.  If it chooses a sort/uniq aggregation plan, the re-
> sort
> will destroy the sort order of the sub-select's output.

Thanks, Tom. That fixed the problem in the production version. Is the
ability to do this an artifact of the sorting or defined by the SQL?
I.e., can I expect this to work even if the plan changes? I'm
guessing not, but that's just a guess.

Michael Glaesemann
grzm myrealbox com




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Aggregates, group, and order by
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: PostgreSQL, UTF-8 and Mac OS X