postgresql 如何在Postgres中查询所有数组元素?

l7wslrjt  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(145)

我有一个简单的postgres 12 DB,有两列。第一列包含日期,第二列包含嵌套的jsonb数组。下面的查询将第一个元素的选定数据很好地Map到一个表。

SELECT
date, 
stats -> 0 -> 'item_info' ->> 'field_1' AS field_a,  
stats -> 0 -> 'item_info' ->> 'field_2' AS field_b,  
stats -> 0 -> 'status' -> 'substatus' ->> 'subsubstatus' AS field_c
FROM mytable;

如何用下一个元素1..n填充表的剩余部分?或者,换句话说,如何Map所有元素?

fkaflof6

fkaflof61#

我假设你想要这样的东西:

SELECT
  date, 
  elements -> 'item_info' ->> 'field_1' AS field_a,  
  elements -> 'item_info' ->> 'field_2' AS field_b,  
  elements -> 'status' -> 'substatus' ->> 'subsubstatus' AS field_c
FROM mytable
CROSS JOIN LATERAL jsonb_array_elements(stats) AS elements;

相关问题