Re: Concatenating string fields with GROUP BY clause - Mailing list pgsql-novice
From | Jeffrey Melloy |
---|---|
Subject | Re: Concatenating string fields with GROUP BY clause |
Date | |
Msg-id | 5CCD3A86-E2EE-11D7-A539-000393C78AC0@visualdistortion.org Whole thread Raw |
In response to | Re: Concatenating string fields with GROUP BY clause ("Brian G. Huber" <brianghuber@yahoo.com>) |
List | pgsql-novice |
I think what he's trying to do is this: a | b | g 1 | sun | 1 2 | shoe | 1 3 | pea | 2 4 | door | 2 he gets this as the response: group, sum, concat 1, 3, sunshoe 2, 7, peadoor So a "concatenation aggregate" That being said, I can't think of any simple way to do it in SQL. Jeff On Tuesday, September 9, 2003, at 12:29 PM, Brian G. Huber wrote: <excerpt><fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>Thanks for the response - but II does not seem to work as an aggregate function - for example - if I use:</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>SELECT groupid, sum(numeric_field), ||(text_field) FROM table GROUP BY groupid</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>I get</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>ERROR: Unable to identify a prefix operator '||' for type 'text' You may need to add parentheses or an explicit cast</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>Therefore, I think II concatenates two text columns, but does not aggregate. It would seem this is fairly common but there is no text aggregation function listed in 6.14 Aggregate Functions!!!</smaller></color></fontfamily> ----- Original Message ----- <bold>From:</bold> <underline><color><param>1999,1999,FFFF</param>Godshall Michael</color></underline> <bold>To:</bold> <underline><color><param>1999,1999,FFFF</param>'Brian G. Huber'</color></underline> ; <underline><color><param>1999,1999,FFFF</param>pgsql-novice@postgresql.org</color></underline> <bold>Sent:</bold> Tuesday, September 09, 2003 12:10 PM <bold>Subject:</bold> Re: [NOVICE] Concatenating string fields with GROUP BY clause <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>Concatenate is done with || in postgresql</smaller></color></fontfamily> <fontfamily><param>Times New Roman</param><smaller>-----Original Message----- <bold>From:</bold> Brian G. Huber [mailto:brianghuber@yahoo.com] <bold>Sent:</bold> Tuesday, September 09, 2003 12:02 PM <bold>To:</bold> <underline><color><param>1999,1999,FFFF</param>pgsql-novice@postgresql.org </color></underline><bold>Subject:</bold> [NOVICE] Concatenating string fields with GROUP BY clause </smaller></fontfamily><fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>Hi -</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>I am trying to concatenate a text field in a query with a group by clause, similar to a sum() function on a numeric value - for example:</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>SELECT groupid, sum(numeric_field), ???(text_field) FROM table GROUP BY groupid</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>but I cannot find a function that will concatenate the text fields. Any comments appreciated!</smaller></color></fontfamily> <fontfamily><param>Arial</param><color><param>0000,0000,FFFF</param><smaller>TIA,BGH</smaller></color></fontfamily> </excerpt>I think what he's trying to do is this: a | b | g 1 | sun | 1 2 | shoe | 1 3 | pea | 2 4 | door | 2 he gets this as the response: group, sum, concat 1, 3, sunshoe 2, 7, peadoor So a "concatenation aggregate" That being said, I can't think of any simple way to do it in SQL. Jeff On Tuesday, September 9, 2003, at 12:29 PM, Brian G. Huber wrote: > Thanks for the response - but II does not seem to work as an aggregate > function - for example - if I use: > > SELECT groupid, sum(numeric_field), ||(text_field) FROM table GROUP BY > groupid > > I get > > ERROR: Unable to identify a prefix operator '||' for type 'text' > You may need to add parentheses or an explicit cast > > Therefore, I think II concatenates two text columns, but does not > aggregate. It would seem this is fairly common but there is no text > aggregation function listed in 6.14 Aggregate Functions!!! > ----- Original Message ----- > > From: Godshall Michael > To: 'Brian G. Huber' ; pgsql-novice@postgresql.org > Sent: Tuesday, September 09, 2003 12:10 PM > Subject: Re: [NOVICE] Concatenating string fields with GROUP BY clause > > Concatenate is done with || in postgresql > > -----Original Message----- > From: Brian G. Huber [mailto:brianghuber@yahoo.com] > Sent: Tuesday, September 09, 2003 12:02 PM > To: pgsql-novice@postgresql.org > Subject: [NOVICE] Concatenating string fields with GROUP BY clause > > Hi - > > I am trying to concatenate a text field in a query with a group by > clause, similar to a sum() function on a numeric value - for example: > > SELECT groupid, sum(numeric_field), ???(text_field) FROM table GROUP > BY groupid > > but I cannot find a function that will concatenate the text fields. > Any comments appreciated! > > TIA,BGH >
pgsql-novice by date: