Обсуждение: How do you do the opposite of regexp_split_to_table?

Поиск
Список
Период
Сортировка

How do you do the opposite of regexp_split_to_table?

От
John Gage
Дата:
I would like to take several rows from a select and have them grouped  
into one row with the text contents of one field in all the rows  
concatenated into one field in the single row of the group group.  The  
contents of the other fields are identical across the rows.

This is the complementary action to regexp_split_to_table.

Grouping by summing numerical fields seems to be straightforward, but  
grouping by concatenating text fields escapes my search of the  
documentation.

Thanking you for your patience,

John


Re: How do you do the opposite of regexp_split_to_table?

От
Alvaro Herrera
Дата:
Excerpts from John Gage's message of mar ago 03 16:21:58 -0400 2010:

> Grouping by summing numerical fields seems to be straightforward, but  
> grouping by concatenating text fields escapes my search of the  
> documentation.

You can create a new custom aggregate function that does this.  It's
pretty straightforward.  There are examples in the archives (search for
text_concat), but there's also a more modern way involving array_agg and
array_to_string.

-- 
Álvaro Herrera <alvherre@commandprompt.com>
The PostgreSQL Company - Command Prompt, Inc.
PostgreSQL Replication, Consulting, Custom Development, 24x7 support