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
|
Список | 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 по дате отправления: