Michael Toews wrote:
Now, I would like to group a summary of the strings in "sub", but they must be ordered alphabetically. Here I attempt the SQL:

  select commacat(sub), grp from aggr_test group by grp;

However, on my system it will output the "commacat" column as:

  "one, two, three";"pom pom"
  "two, three, one";"la la"

(notice that the items in the first column are ordered differently, since the input values were entered in non-alphabetically)

This is where I get confused, since in the aggregate function, I have specified `SORTOP="<"`, which according to the documentation (http://www.postgresql.org/docs/8.3/interactive/sql-createaggregate.html) "must be equivalent to":

  SELECT sub FROM aggr_test ORDER BY sub USING <; -- LIMIT 1;

That's for things like min()/max() where you only want the first/last value of some set. You want all of them.

You could accumulate the values in an array and then sort that with the final-func that create aggregate supports.


--
  Richard Huxton
  Archonet Ltd

--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to