From: | Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx> |
---|---|
To: | Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: select by groups |
Date: | 2004-03-01 22:32:50 |
Message-ID: | m3ekscw63x.fsf@conexa.fciencias.unam.mx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar> writes:
> I have a table with names of people, email address, etc, and an identifier
> that tells me which group they are in (could be a 1, 2, or 3 person group).
> Is it posible to make a query that would give me the name of the persons of
> each group in one row? Or do I have to do PL?
Use GROUP BY with an aggregator that concatenate the names. The
aggregator may be implemented in plpgsql, for instance:
CREATE OR REPLACE FUNCTION concat (text, text) RETURNS text
AS 'select case when $1 = '''' then $2 else ($1 || '', '' || $2) end'
LANGUAGE sql;
CREATE AGGREGATE concat (
BASETYPE = text,
SFUNC = public.concat,
STYPE = text,
INITCOND = ''
);
Regards,
Manuel.
From | Date | Subject | |
---|---|---|---|
Next Message | Oliver Elphick | 2004-03-01 22:57:28 | Re: SYSDATE in PostgreSQL !? |
Previous Message | Martin Marques | 2004-03-01 22:20:20 | select by groups |