Re: string_agg delimiter having no effect with order by

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: string_agg delimiter having no effect with order by
Дата
Msg-id 19470.1280935779@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: string_agg delimiter having no effect with order by  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: string_agg delimiter having no effect with order by  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-bugs
Robert Haas <robertmhaas@gmail.com> writes:
> Oh, yeah.  I guess you need this:

> select thing, string_agg(stuff, ',' order by stuff) from agg_test
> group by thing;

> Rather than this:

> select thing, string_agg(stuff order by stuff, ',') from agg_test
> group by thing;

> It's all kinds of not obvious to me what the second one is supposed to
> mean, but I remember this was discussed before.  Perhaps we need a
> <note> somewhere about multi-argument aggregates.

Done:

+    <para>
+     When dealing with multiple-argument aggregate functions, note that the
+     <literal>ORDER BY</> clause goes after all the aggregate arguments.
+     For example, this:
+ <programlisting>
+ SELECT string_agg(a, ',' ORDER BY a) FROM table;
+ </programlisting>
+     not this:
+ <programlisting>
+ SELECT string_agg(a ORDER BY a, ',') FROM table;  -- not what you want
+ </programlisting>
+     The latter syntax will be accepted, but <literal>','</> will be
+     treated as a (useless) sort key.
+    </para>

            regards, tom lane

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

Предыдущее
От: "Shine"
Дата:
Сообщение: BUG #5598: Compatibility modes
Следующее
От: Tom Lane
Дата:
Сообщение: Re: In 8.2, shutdown wrongly caused automatic restart