我有两张桌子
Student
--------
Id Name
1 John
2 David
3 Will
Grade
---------
Student_id Mark
1 A
2 B
2 B+
3 C
3 A
是否可以使本机 Postgresql SELECT 获得如下结果:
Name Array of marks
-----------------------
'John', {'A'}
'David', {'B','B+'}
'Will', {'C','A'}
但 不像 下面
Name Mark
----------------
'John', 'A'
'David', 'B'
'David', 'B+'
'Will', 'C'
'Will', 'A'
原文由 Eazy 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用array_agg: http ://www.sqlfiddle.com/#!1/5099e/1
顺便说一句,如果您使用的是 Postgres 9.1, 则不需要将 SELECT 上的列重复 到 GROUP BY,例如,您不需要在 GROUP BY 上重复学生姓名。您只能对主键进行 GROUP BY。如果您删除学生的主键,则需要在 GROUP BY 上重复学生姓名。