将行合并到 jsonb 对象中

Merge rows into jsonb object

(这是之后的跟进问题)

postgresql 12+ 中,给定以下输入行:

expected 输出是:

uid   tag_freq

1     {'a':2, 'b':1, 'c':1}
2     {'a':1, 'b':2, 'c':2, 'e':1}
...

输出列tag_freq是jsonb对象,是用户的合并结果。

有没有办法写这样的查询?

您可以为此使用 jsonb_object_agg()

select uid, jsonb_object_agg(tag, count) as tag_freq
from the_table
group by uid;