【发布时间】:2021-12-19 17:48:27
【问题描述】:
我的 PostgreSQL 11.5 与此 jsonb 数据类似:
[{"name":"$.publishedMonth", "value":"04"},{"name":"$.publishedYear","value":"1972"}]
[{"name":"$.publishedMonth", "value":"07"},{"name":"$.publishedYear","value":"2020"}]
我想要的结果是:
| id | publishedMonthYear |
|---|---|
| 1 | 04-1972 |
| 2 | 07-2020 |
SELECT b.field_value AS publishedMonthYear, COUNT(*)
FROM (SELECT *
FROM (SELECT (jsonb_array_elements(result) ::jsonb) - >> 'name' field_name,
(jsonb_array_elements(result) ::jsonb) - >> 'value' field_value,
FROM books
WHERE bookstore_id = '3') a
WHERE a.field_name in ('$.publishedMonth', '$.publishedYear')) b
GROUP BY b.field_value
提前感谢您的任何帮助
【问题讨论】:
标签: sql postgresql jsonb