我正在使用PostgreSQL。我有一个列有列的表:id,city,country。 我有每个国家的几个城市。
例如:
ID Country City
1 Brazil Rio de Janeiro
2 Argentina Buenos Aires
3 Argentina Bariloche
我想要一个返回类似
的SELECTCountry Cities
Brazil (Rio de Janeiro)
Argentina (Buenos Aires, Bariloche)
我该怎么办?
答案 0 :(得分:1)
根据您希望在结果集中获得的内容,您可以使用array_agg()
或string_agg()
个功能。
WITH t(id,country,city) AS ( VALUES
(1,'Brazil','Rio de Janeiro'),
(2,'Argentina','Buenos Aires'),
(3,'Argentina','Bariloche')
)
SELECT country,'(' || string_agg(city,',') || ')' FROM t
GROUP BY country;