sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan itereres gennem PostgreSQL jsonb-arrayværdier med det formål at matche i en forespørgsel

Jeg løste dette ved i det væsentlige at udføre den 'unnest()'-lignende jsonb_array_elements() på mit indlejrede jsonb-array.

Ved at gøre dette i en underforespørgsel og derefter scanne disse resultater ved hjælp af en variant af min oprindelige forespørgsel, var jeg i stand til at opnå mit ønskede resultat.

Her er, hvad jeg fandt på.

with dupe as (
select
json_document->>'Name' as name,
identifiers->'RecordID' as record_id
from (
  select *,  
  jsonb_array_elements(json_document->'Identifiers') as identifiers
  from staging
) sub
group by record_id, json_document
order by name
) 

select * from dupe da where (select count(*) from dupe db where 
db.record_id = da.record_id) > 1;



  1. PostgreSQL-kombinationer til forskel fra permutationer

  2. Java Forberedt sætning udføres ikke

  3. psycopg2.ProgrammingError:syntaksfejl ved eller tæt på stdin-fejl ved forsøg på at kopiere_fra rødforskydning

  4. Sorter tegn i varchar2 alfabetisk