update_document_status_meta.sql 662 B

12345678910111213141516171819202122232425
  1. UPDATE "document" "document"
  2. SET status_meta = jsonb_set ( "document".status_meta, '{aggs}', tmp.status_meta )
  3. FROM
  4. (
  5. SELECT COALESCE
  6. ( jsonb_agg ( jsonb_delete ( ( row_to_json ( record ) :: JSONB ), 'document_id' ) ), '[]' :: JSONB ) AS status_meta,
  7. document_id AS document_id
  8. FROM
  9. (
  10. SELECT
  11. "paragraph".status,
  12. "count" ( "paragraph"."id" ),
  13. "document"."id" AS document_id
  14. FROM
  15. "document" "document"
  16. LEFT JOIN "paragraph" "paragraph" ON "document"."id" = paragraph.document_id
  17. ${document_custom_sql}
  18. GROUP BY
  19. "paragraph".status,
  20. "document"."id"
  21. ) record
  22. GROUP BY
  23. document_id
  24. ) tmp
  25. WHERE "document".id="tmp".document_id