Re: adding "order by" to a "group by" query
От | Scott Marlowe |
---|---|
Тема | Re: adding "order by" to a "group by" query |
Дата | |
Msg-id | [email protected] обсуждение исходный текст |
Ответ на | Re: adding "order by" to a "group by" query (Louis-David Mitterrand <[email protected]>) |
Ответы |
Re: adding "order by" to a "group by" query
|
Список | pgsql-sql |
On Sat, Dec 6, 2008 at 10:31 AM, Louis-David Mitterrand <[email protected]> wrote: > On Sat, Dec 06, 2008 at 06:26:06PM +0100, Andreas Kretschmer wrote: >> Louis-David Mitterrand <[email protected]> schrieb: >> > >> > But if I append this >> > >> > order by pt.type_fr = 'comédien'; >> > >> > I get this error: >> > >> > ERROR: column "pt.type_fr" must appear in the GROUP BY clause or be used in an aggregate function >> > >> > It seems I am using pt.type_fr in an aggregate function (array_accum()), >> > yet I get the error. >> > >> > Is there a way to to have a certain pt.type_fr bubble up (or down) in my >> > search? >> >> You can use a subquery like my example: >> >> test=*# select i, comma(t) from (select distinct i,t from foo) bar group by i; >> i | comma >> ---+--------- >> 1 | a, b, c >> (1 row) >> >> Time: 0.554 ms >> test=*# select i, comma(t) from (select distinct i,t from foo order by t desc) bar group by i; > > Thanks Andreas, that would be good solution. > > (still curious about the "must be used in an aggregate function" error > though... because I do use it in an aggregate) You can order by the same thing you selected: select sum(i) from ... group by j order by sum(i) OR select sum(i) from ... group by j order by 1 -- 1 stands for the first select list item...
В списке pgsql-sql по дате отправления: