Обсуждение: Append n Rows into a Single Row
Hi, I am totally new to PostgreSQL and this is my first script. Can anyone please help me with my following requirement I have script that returns 1 column and 40 rows. My requirement is update this existing script to show all the 40 rows data in a single row as a string. For example The current script returns, something like this Tom Tad Max Ted I have to update the existing script to show the above results as follow Tom || Tad || Max || Ted Something like colace in Ms sql Any help is really appriciated. Thankyou in Advance. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Append-n-Rows-into-a-Single-Row-tp4500306p4500306.html Sent from the PostgreSQL - sql mailing list archive at Nabble.com.
Look at the documentation for the tablefunc contrib module. It provides a crosstab() function which will allow you to pivotmultiple rows into multiple columns in a single row, with all rows that share a particular key in one or more columnspivoting up into the same row, but different keys ending up as separate rows. You could then string concatenate allcolumns of a single row into a single string if desired, Sent from my iPhone On Jun 17, 2011, at 17:20, Tripura <k_tripura@hotmail.com> wrote: > Hi, > I am totally new to PostgreSQL and this is my first script. > Can anyone please help me with my following requirement > > I have script that returns 1 column and 40 rows. > My requirement is update this existing script to show all the 40 rows data > in a single row as a string. > > For example > The current script returns, something like this > Tom > Tad > Max > Ted > > I have to update the existing script to show the above results as follow > Tom || Tad || Max || Ted > > Something like colace in Ms sql > > Any help is really appriciated. > > Thankyou in Advance. > > > > > > > > -- > View this message in context: http://postgresql.1045698.n5.nabble.com/Append-n-Rows-into-a-Single-Row-tp4500306p4500306.html > Sent from the PostgreSQL - sql mailing list archive at Nabble.com. > > -- > Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-sql
Look at the array aggregation functions here <http://www.postgresql.org/docs/9.0/static/functions-array.html> Tripura wrote: > Hi, > I am totally new to PostgreSQL and this is my first script. > Can anyone please help me with my following requirement > > I have script that returns 1 column and 40 rows. > My requirement is update this existing script to show all the 40 rows data > in a single row as a string. > > For example > The current script returns, something like this > Tom > Tad > Max > Ted > > I have to update the existing script to show the above results as follow > Tom || Tad || Max || Ted > > Something like colace in Ms sql > > Any help is really appriciated. > > Thankyou in Advance. > > > > > > > > -- > View this message in context: http://postgresql.1045698.n5.nabble.com/Append-n-Rows-into-a-Single-Row-tp4500306p4500306.html > Sent from the PostgreSQL - sql mailing list archive at Nabble.com. > >
Actually, you need the array_agg() function to aggregate multiple rows into a single array, and that is discussed on the aggregate functions page, here: http://www.postgresql.org/docs/9.0/static/functions-aggregate.html
You could then use one of the other array functions to manipulate that array.
But given that you are appending strings to each other in your example, you can also just use the string_agg function from that same page - assuming you are on 9.0. It looks like that function isn't available before 9.0
--sam
On Sat, Jun 18, 2011 at 8:33 PM, Rob Sargent <robjsargent@gmail.com> wrote:
Look at the array aggregation functions here <http://www.postgresql.org/docs/9.0/static/functions-array.html>
Tripura wrote:Hi,
I am totally new to PostgreSQL and this is my first script.
Can anyone please help me with my following requirement
I have script that returns 1 column and 40 rows.
My requirement is update this existing script to show all the 40 rows data
in a single row as a string.
For example The current script returns, something like this Tom
Tad
Max
Ted
I have to update the existing script to show the above results as follow
Tom || Tad || Max || Ted
Something like colace in Ms sql
Any help is really appriciated.
Thankyou in Advance.
--
View this message in context: http://postgresql.1045698.n5.nabble.com/Append-n-Rows-into-a-Single-Row-tp4500306p4500306.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.
--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql
On Sat, Jun 18, 2011 at 08:51:55PM -0700, Samuel Gendler wrote: > Actually, you need the array_agg() function to aggregate multiple rows into > a single array, and that is discussed on the aggregate functions page, > here: http://www.postgresql.org/docs/9.0/static/functions-aggregate.html > > You could then use one of the other array functions to manipulate that > array. > > But given that you are appending strings to each other in your example, you > can also just use the string_agg function from that same page - assuming you > are on 9.0. It looks like that function isn't available before 9.0 > Nice blog post about this here: http://www.postgresonline.com/journal/archives/191-stringagg.html Ross -- Ross Reedstrom, Ph.D. reedstrm@rice.edu Systems Engineer & Admin, Research Scientist phone: 713-348-6166 Connexions http://cnx.org fax: 713-348-3665 Rice University MS-375, Houston, TX 77005 GPG Key fingerprint = F023 82C8 9B0E 2CC6 0D8E F888 D3AE 810E 88F0 BEDE