sql >> Database >  >> RDS >> PostgreSQL

Hoe te herhalen door PostgreSQL jsonb-arraywaarden voor het matchen binnen een query

Ik heb dit opgelost door in wezen de 'unnest()'-achtige jsonb_array_elements() uit te voeren op mijn geneste jsonb-array.

Door dit in een subquery te doen en die resultaten vervolgens te scannen met een variant van mijn oorspronkelijke query, kon ik het gewenste resultaat bereiken.

Dit is wat ik bedacht.

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. Selectieresultaat opslaan in variabele in Oracle-procedure

  2. SQLAlchemy, Declarative, PostgreSQL:kan geen tabellen maken

  3. MySQL groeperen op met volgorde/prioriteit van een andere kolom

  4. De beste manier om aan ouder- en kindtabellen deel te nemen