Search Postgresql Archives

Re: extract property value from set of json arrays

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



figured it out:

select unnest(array_agg(e.db ->> 'e')) as j      
from tbl_t t
  cross join lateral jsonb_array_elements((t.jdata->>'b')::jsonb)
  as c(e)

On Mon, Apr 6, 2020 at 10:51 PM David G. Johnston <david.g.johnston@xxxxxxxxx> wrote:
On Mon, Apr 6, 2020 at 7:21 PM AC Gomez <antklc@xxxxxxxxx> wrote:
I have the following in a postgresql table
row 1: {"a": 1, "b": "[{"c": "123", "d":"456", "e": "789"},  {"c": "222", "d":"111", "e": "000"} ]"}
row 2: {"a": 2, "b": "[{"c": "XXX", "d":"YYY", "e": "ZZZ"},  {"c": "666", "d":"444", "e": "333"} ]"}

How do I pullout all "b":"e" values  and end up with this result:
789
000
ZZZ
333

Two approaches:

1. Wait for someone else to figure it out and give you the answer.

If 1. takes too long:

2. Read up on json operators.


Then work out something that either works or gets you at least close.  If you are just close post the work done to date and any relevant points of confusion.

I'll then likely be willing and able to fill in the missing gap(s) and provide a relevant explanation.

You should formulate your query so that it doesn't require CREATE TABLE.  WITH vals (v) AS (VALUES (''::json)) SELECT vals.v FROM vals; makes experimenting very easy.

Also, indicate which version of PostgreSQL you are working with.

David J.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux