Gebruik 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
Trouwens, als je Postgres 9.1 gebruikt, hoef je de kolommen op SELECTEREN om GROUP BY niet te herhalen, b.v. je hoeft de naam van de student niet te herhalen in GROUP BY. U kunt alleen GROUP BY op de primaire sleutel. Als je de primaire sleutel van de leerling verwijdert, moet je de naam van de leerling herhalen op 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');