Použijte 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
Mimochodem, pokud používáte Postgres 9.1, nemusíte opakovat sloupce na SELECT do GROUP BY, např. na GROUP BY nemusíte opakovat jméno studenta. Můžete pouze GROUP BY na primárním klíči. Pokud odeberete primární klíč u studenta, musíte zopakovat jméno studenta na 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');