sql >> Databáze >  >> RDS >> PostgreSQL

Jak iterovat hodnoty pole jsonb PostgreSQL pro účely porovnávání v rámci dotazu

Vyřešil jsem to tak, že jsem v podstatě provedl „unnest()“ podobný jsonb_array_elements() na mém vnořeném poli jsonb.

Tím, že jsem to provedl v dílčím dotazu a pak jsem tyto výsledky naskenoval pomocí variace mého původního dotazu, byl jsem schopen dosáhnout požadovaného výsledku.

Tady je to, na co jsem přišel.

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. Problém Jpa ManytoMany s Spring Boot

  2. Vestavěné testy PostgreSQL pro Java JUnit

  3. ORACLE - Tabulka párů JSON To Key Value

  4. Jaké je nejlepší řešení pro zabezpečení SQL injection na MySQL?