我有一個簡單的查詢,SELECT name, grp FROM things;
導致如下表所示:如何轉換查詢結果JSON對象內的Postgres
name | grp
------+-----
a | y
b | x
c | x
d | z
e | z
f | z
我想與以下單JSON對象落得:
{y: [a], x: [b,c], z: [d,e,f]}
我覺得我更接近查詢SELECT grp, array_agg(name) as names FROM things GROUP BY grp;
它給出了三行與「名稱」凝聚成一個數組,但我不知道從哪裏去從這裏得到行凝聚成一個單一的JSON對象。
SELECT json_build_object(grp, array_agg(name)) as objects FROM things GROUP BY grp;
可能稍微接近一點,因爲這會導致個別JSON對象(如{y: [a]}
)的單列結果,但它們仍然是單個對象,因此可能不是正確的路徑。
這是使用Postgresql 9.4。
爲什麼總是我花了一天半的時間,試圖找出答案的情況下我自己,放棄,張貼到SO,給它更多的搜索,並在10分鐘內找到答案。 – Azdle
在這裏積累的知識的浩瀚使你的思想感染。 – klin