PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Hapus pasangan Nilai Kunci dari array bersarang jsonb di postgresql

demo langkah demi langkah:db<>fiddle

SELECT
    jsonb_object_agg(key, a)                                -- 5
FROM (
    SELECT
        mydata,
        key,
        jsonb_agg(a_elems.value - 'c') as a                   -- 3/4
    FROM
        mytable,
        jsonb_each(mydata) elems,                             -- 1
        jsonb_array_elements(elems.value) AS a_elems          -- 2
    GROUP BY mydata, key                                      -- 4
) s
GROUP BY mydata                                               -- 5
  1. Perluas elemen JSON masing-masing menjadi satu baris. Ini menghasilkan dua kolom:Satu untuk kunci dan satu untuk nilai (array JSON)
  2. Perluas larik JSON menjadi satu baris masing-masing (yang memisahkan objek JSON gabungan dari mana Anda ingin menghapus c elemen)
  3. Anda dapat menggunakan - operator untuk menghapus elemen.
  4. Untuk menggabungkan kembali objek JSON asli, Anda perlu mengelompokkannya ke belakang. jsonb_agg() menggabungkan kembali array
  5. Akhirnya Anda perlu membangun kembali objek JSON asli dengan jsonb_object_agg() menggunakan kolom kunci yang dibuat sebelumnya dan kolom larik baru.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.postgresql.util.PSQLException:FATAL:tidak ada entri pg_hba.conf untuk host

  2. Skrip DDL PostgreSQL Idempoten

  3. apakah adaptor rails postgres mendukung ssl?

  4. Pencadangan Database Postgresql Menggunakan Python

  5. PostgreSQL Berjalan Lambat? Tips &Trik Menuju Sumbernya