我对 PostgreSQL 还是很陌生,我无法聚合一些我想转换为有效 JSON 的行和列。
我有一个这样的表:
uid | name | count
-----+--------------------+-------
15 | latergram | 1
15 | wales | 1
我想连接列标记并计数为“名称”:计数。之后我想将具有相同 uid 的行合并到一个 JSON 对象中。最终结果应该是这样的:
uid | json_agg
-----+----------------------------
15 | ["latergram":1, "wales":1]
但我能做到的最好的就是这个,它不是一个有效的 JSON:
uid | json_agg
-----+----------------------------
15 | ["latergram:1", "wales:1"]
这是我使用的查询:
SELECT foo.uid, json_agg(foo.tag)
from (
SELECT uid, (concat(tag || ':' || count)) as tag from test
) as foo
group by foo.uid
但是通过 Postgres 实现这一目标难道没有更好、特别正确的方法吗?帮助将不胜感激!