【发布时间】:2020-10-12 09:25:54
【问题描述】:
我有一个带有 json 标记的 PSQL 表,它总是存储在 json 数组中的字符串:
id | tags (json)
--------------------------
1 | ["tag1", "tag2"]
2 | ["tag12", "tag2"]
122 | []
例如,我想查询包含每个标签的表中的条目数。
例如,我想得到:
tag | count
--------------------------
tag1 | 1
tag2 | 2
tag12 | 1
我试过了
SELECT tags::text AS tag, COUNT(id) AS cnt FROM my_table GROUP BY tag;
但如果不起作用,因为它给了
tag | cnt
--------------------------
["tag1", "tag2"] | 1
["tag12", "tag2"] | 1
我想我需要在内部查询中获取所有标签的列表,然后为每个标签计算包含此标签的行,但我找不到如何做到这一点。你能帮我解决这个问题吗?
【问题讨论】:
标签: sql arrays json postgresql postgresql-9.6