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 to 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');