Използвайте 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
Между другото, ако използвате Postgres 9.1, не е необходимо да повтаряте колоните от SELECT до GROUP BY, напр. не е необходимо да повтаряте името на ученика в GROUP BY. Можете просто да ГРУПИРАТЕ по първичен ключ. Ако премахнете първичния ключ на ученик, трябва да повторите името на ученика в 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');