MaxKB/apps/dataset/sql/update_document_status_meta...
2024-11-26 12:08:13 +08:00

25 lines
639 B
SQL

UPDATE "document" "document"
SET status_meta = jsonb_set ( "document".status_meta, '{aggs}', tmp.status_meta )
FROM
(
SELECT COALESCE
( jsonb_agg ( jsonb_delete ( ( row_to_json ( record ) :: JSONB ), 'document_id' ) ), '[]' :: JSONB ) AS status_meta,
document_id AS document_id
FROM
(
SELECT
"paragraph".status,
"count" ( "paragraph"."id" ),
"document"."id" AS document_id
FROM
"document" "document"
LEFT JOIN "paragraph" "paragraph" ON "document"."id" = paragraph.document_id
${document_custom_sql}
GROUP BY
"paragraph".status,
"document"."id"
) record
GROUP BY
document_id
) tmp
${default_sql}