Brug array_agg:http://www.sqlfiddle.com/#!1/5099e/1
SELECT s.name, array_agg(g.Mark) as marks
FROM student s
LEFT JOIN Grade g ON g.Student_id = s.Id
GROUP BY s.Id
I øvrigt, hvis du bruger Postgres 9.1, behøver du ikke gentage kolonnerne på SELECT to GROUP BY, f.eks. du behøver ikke at gentage elevens navn på GROUP BY. Du kan kun GRUPPE EFTER på primær nøgle. Hvis du fjerner den primære nøgle på elev, skal du gentage elevens navn på GROUP BY.
CREATE TABLE grade
(Student_id int, Mark varchar(2));
INSERT INTO grade
(Student_id, Mark)
VALUES
(1, 'A'),
(2, 'B'),
(2, 'B+'),
(3, 'C'),
(3, 'A');
CREATE TABLE student
(Id int primary key, Name varchar(5));
INSERT INTO student
(Id, Name)
VALUES
(1, 'John'),
(2, 'David'),
(3, 'Will');