sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man itererar genom PostgreSQL jsonb-matrisvärden i syfte att matcha i en fråga

Jag löste detta genom att i huvudsak utföra den 'unnest()'-liknande jsonb_array_elements() på min kapslade jsonb-array.

Genom att göra detta i en underfråga och sedan skanna dessa resultat med en variant av min ursprungliga fråga, kunde jag uppnå mitt önskade resultat.

Här är vad jag kom 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. Hur importerar jag moduler eller installerar tillägg i PostgreSQL 9.1+?

  2. Undvik dubbletter i INSERT INTO SELECT-frågan i SQL Server

  3. Hur man skapar markören inuti procedurens kropp i plsql

  4. Konvertera tidsskillnad till ett givet format i Oracle