Assume there's a table projects containing project name, location, team id, start and end years. How can I concatenate rows so that the same names would combine the other information into one string?
name location team_id start end Library Atlanta 2389 2015 2017 Library Georgetown 9920 2003 2007 Museum Auckland 3092 2005 2007 Expected output would look like this:
name Records Library Atlanta, 2389, 2015-2017 Georgetown, 9920, 2003-2007 Museum Auckland, 3092, 2005-2007 Each line should contain end-of-line / new line character.
I have a function for this, but I don't think it would work with just using CONCAT. What are other ways this can be done? What I tried:
CREATE OR REPLACE TYPE projects (name TEXT, records TEXT); CREATE OR REPLACE FUNCTION records (INT) RETURNS SETOF projects AS $$ RETURN QUERY SELECT p.name CONCAT(p.location, ', ', p.team_id, ', ', p.start, '-', p.end, CHAR(10)) FROM projects($1) p; $$ LANGUAGE PLpgSQL; I tried using CHAR(10) for new line, but its giving a syntax error (not sure why?).
The above sample concatenate the string but expectedly leaving out duplicated names.