Database Research & Development

  • Home
  • NoSQL
    • NoSQL
    • Cassandra
  • Databases
    • Database Theory
    • Database Designing
    • SQL Server Coding Standards
    • SQL Server
    • PostgreSQL
    • MySQL
    • Greenplum
    • Linux
  • Interviews
    • SQL Server Interviews
    • MySQL Interviews
    • SQL Puzzles
  • DBA Scripts
    • SQL Server DBA Scripts
    • PostgreSQL DBA Scripts
    • MySQL DBA Scripts
    • Greenplum DBA Scripts
  • Home
  • Blog Archives !
  • (: Laugh@dbrnd :)
  • Contact Me !
sqlserverinterviews
Home 2016 September PostgreSQL: STRING_AGG() to Concatenate String Per Each Group (Like SQL Server STUFF())

PostgreSQL: STRING_AGG() to Concatenate String Per Each Group (Like SQL Server STUFF())

This article is half-done without your Comment! *** Please share your thoughts via Comment ***

Last week on my Facebook Page, I have received a couple message about what is a similar solution of SQL Server STUFF () in PostgreSQL.

Most of the Database Developers require to perform String Aggregation based on different group of records.

Since PostgreSQL 9.0, STRING_AGG(expression, delimiter) function is available to perform String Aggregation operation.
Using STRING_AGG(), We can concatenate strings using different type of delimiter symbols.

Example of STRING_AGG():

Create a sample Students table:

1
2
3
4
5
6
CREATE TABLE tbl_Students
(
StudID INT
,StudName CHARACTER VARYING
,StudGrades CHAR(1)
);

Insert few sample records:

1
2
3
4
5
6
INSERT INTO tbl_Students
VALUES
(1,'Anvesh','A'),(2,'Kimly','B')
,(3,'Jenny','C'),(4,'Ali','B')
,(5,'Mukesh','D'),(6,'Sofia','A')
,(7,'Roy','C'),(8,'Martin','C');

Concatenate Students Name per each Student Grade and arrange by Grade wise row (Using STRING_AGG()):

1
2
3
4
5
6
SELECT
StudGrades
,STRING_AGG(StudName,', ') AS StudPerGrade
FROM tbl_Students
GROUP BY StudGrades
ORDER BY 1 ;

The Result:

1
2
3
4
5
6
7
studgrades | studpergrade
------------+--------------------
A | Anvesh, Sofia
B | Kimly, Ali
C | Jenny, Roy, Martin
D | Mukesh
(4 rows)

Sep 2, 2016Anvesh Patel
PostgreSQL: What are the Differences between SQL and PL/pgSQL language in FunctionPostgreSQL: Why we should use '$$' double dollar in PG/pgSQL Block
Comments: 3
  1. Hélio
    February 28, 2018 at 12:01 pm

    the definition of Stuff function is another https://docs.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql

  2. Elixy
    May 8, 2018 at 11:22 am

    i got the solution here, thanks for sharing stuff() alternative

  3. alok
    September 12, 2019 at 7:57 am

    thanks bro use full

Anvesh Patel
Anvesh Patel

Database Engineer

September 2, 2016 PostgreSQLaggregation, Anvesh Patel, database, database research and development, dbrnd, plpgsql, Postgres Query, postgresql, PostgreSQL Administrator, PostgreSQL Error, PostgreSQL Programming, PostgreSQL Tips and Tricks, string, string concatenate, string_agg, stuff
About Me!

I'm Anvesh Patel, a Database Engineer certified by Oracle and IBM. I'm working as a Database Architect, Database Optimizer, Database Administrator, Database Developer. Providing the best articles and solutions for different problems in the best manner through my blogs is my passion. I have more than six years of experience with various RDBMS products like MSSQL Server, PostgreSQL, MySQL, Greenplum and currently learning and doing research on BIGData and NoSQL technology. -- Hyderabad, India.

About DBRND !

dbrnd

This is a personal blog (www.dbrnd.com).

Any views or opinions represented in this blog are personal and belong solely to the blog owner and do not represent those of people, institutions or organizations that the owner may or may not be associated with in professional or personal capacity, unless explicitly stated.

Feel free to challenge me, disagree with me, or tell me I’m completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or anonymous comments) - so keep it polite.

The content of this website is protected by copyright. No portion of this website may be copied or replicated in any form without the written consent of the website owner.

Recent Comments !
  • Anvesh Patel { Sure will do... } – May 27, 12:43 PM
  • Anvesh Patel { Great... } – May 27, 12:41 PM
  • Anvesh Patel { Great... } – May 27, 12:39 PM
  • Anvesh Patel { Great... } – May 27, 12:36 PM
  • Anvesh Patel { Great... } – May 27, 12:28 PM
  • Anvesh Patel { Great... } – May 27, 12:27 PM
  • Anvesh Patel { Great... } – May 27, 12:16 PM
  • Older »
Follow Me !
  • facebook
  • linkedin
  • twitter
  • youtube
  • google
  • flickr
© 2015 – 2019 All rights reserved. Database Research & Development (dbrnd.com)
Posting....