PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Xóa cặp Giá trị khóa khỏi mảng lồng nhau jsonb trong postgresql

bản trình diễn từng bước: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. Mở rộng mỗi phần tử JSON thành một hàng. Điều này tạo ra hai cột:Một cho khóa và một cho giá trị (mảng JSON)
  2. Mở rộng mảng JSON thành một hàng mỗi hàng (phân tách đối tượng JSON tổng hợp mà bạn muốn xóa c phần tử)
  3. Bạn có thể sử dụng - toán tử để xóa phần tử.
  4. Để phân loại lại đối tượng JSON ban đầu, bạn cần phải nhóm nó lại. jsonb_agg() phân chia lại các mảng
  5. Cuối cùng, bạn cần xây dựng lại đối tượng JSON ban đầu bằng jsonb_object_agg() bằng cách sử dụng cột khóa đã tạo trước đó và cột mảng mới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm thế nào để sao chép dữ liệu từ tệp sang PostgreSQL bằng JDBC?

  2. làm cách nào để thực hiện tìm kiếm không phân biệt chữ hoa chữ thường trong cột Postgres 9.4 JSONB?

  3. Nhận kết quả giữa hai ngày trong PostgreSQL

  4. Gây ra bởi:java.lang.NoSuchMethodError:org.postgresql.core.BaseConnection.getEncoding () Lorg / postgresql / core / Encoding;

  5. Sqoop trên Hadoop:NoSuchMethodError:com.google.common.base.Stopwatch.createStarted ()