PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да итерирате стойностите на масива PostgreSQL jsonb за целите на съпоставяне в рамките на заявка

Реших това, като по същество изпълних подобно на 'unnest() jsonb_array_elements() на моя вложен jsonb масив.

Като направих това в подзаявка, след което сканирах тези резултати, използвайки вариант на оригиналната ми заявка, успях да постигна желания резултат.

Ето какво измислих.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Наблюдение на PostgreSQL база данни:Съвети за това какво да наблюдавате

  2. Rails 3:грешка при миграция при използване на json като тип колона в ActiveRecord, поддържан от Postgres

  3. Как да свържете резултатите от PGSeaerch към индексната страница във вложени ресурси?

  4. strapi database.js / множество конфигурации на база данни

  5. Извличане на ден от седмицата, милисекунда, микросекунда, наносекунда от дата в Postgres