{"Entry":{"collection":"func","key":"json-objectagg","name":"json_objectagg","aliases":[],"metadata":{"changed_in":[],"changes":[{"descriptions_changed":false,"doc_overhaul":false,"from":"15","group_changed":null,"signatures":{"added":[],"removed":[]},"status":"added","to":"16"}],"content_hash":"c1d328db94fe072e68d46ad646832e32191ce0cdb51fbd7787603efa6ebfe1f9","derived_content_hash":"b3e19c459783d3c9bb38ae12c3f3ff85958ef64079dd8a9aa37ef0670a703707","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:4ed3ba4c6c3fccfdcd999f56c3b9c1d1a139c4d17edfd9527a1590596a6c7559","versions":{"16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"first_version":"16","group":"aggregate","group_label":"Aggregate Functions","groups":["aggregate"],"imported_at":"2026-09-14T21:49:48.857059+08:00","last_version":"20","name":"json_objectagg","name_key":"json_objectagg","position":21023,"present_in":["16","17","18","19","20"],"repair_provenance":{"original_source_revision":"2026-09-14T13:14:25.684213+00:00@99e6866c","receipt_sha256":"eda71b2526a0b443c8d5bcc90e79c5d37e4aa7d172928f3940849a34582a671e","repair":"wiki-repair-20261023"},"signature":"json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ])","signature_count":1,"slug":"json-objectagg","source_rev":"wiki-repair-20261023:4ed3ba4c6c3fccfdcd999f56c3b9c1d1a139c4d17edfd9527a1590596a6c7559","summary":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","summary_zh":""}},"Definition":{"Collection":"func","Key":"json-objectagg","SourceDatabase":"center","Version":"18","SourceTable":"func","SourceKey":"json-objectagg","SourceRevision":"wiki-repair-20261023:4ed3ba4c6c3fccfdcd999f56c3b9c1d1a139c4d17edfd9527a1590596a6c7559","Facts":{"description":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","description_html":"Behaves like \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","description_zh":"行为与 json_object 相同，只是它作为一个聚合函数，因此只接受一个 key_expression 参数和一个 value_expression 参数。","description_zh_html":"行为与 \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e 相同，只是它作为一个聚合函数，因此只接受一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e 参数和一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e 参数。","doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","slug":"18"},"documentation_revision":{"inputs":[{"file":"functions-aggregate.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","version":"18.7"},{"file":"functions-aggregate.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"0bf7506d27b71666fc74840a21a8f77c8a92735174f1d05033865961722e457c","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"group":"aggregate","group_label":"聚合函数","lang":"en","layout":"table-new","pages":["functions-aggregate.html"],"prose_only":false,"signatures":[{"description":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","description_html":"Behaves like \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","description_zh":"行为与 json_object 相同，只是它作为一个聚合函数，因此只接受一个 key_expression 参数和一个 value_expression 参数。","description_zh_html":"行为与 \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e 相同，只是它作为一个聚合函数，因此只接受一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e 参数和一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e 参数。","examples":[{"expr":"SELECT json_objectagg(k:v) FROM (VALUES ('a'::text,current_date),('b',current_date + 1)) AS t(k,v)","result":"{ \"a\" : \"2022-05-10\", \"b\" : \"2022-05-11\" }"}],"html":"\u003ccode class=\"function\"\u003ejson_objectagg\u003c/code\u003e ( [\u003cspan class=\"optional\"\u003e { \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e { \u003ccode class=\"literal\"\u003eVALUE\u003c/code\u003e | ':' } \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e } \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e | \u003ccode class=\"literal\"\u003eABSENT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eON NULL\u003c/code\u003e\u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eWITH\u003c/code\u003e | \u003ccode class=\"literal\"\u003eWITHOUT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eKEYS\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eRETURNING\u003c/code\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003edata_type\u003c/code\u003e\u003c/em\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eFORMAT JSON\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eENCODING UTF8\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] \u003c/span\u003e])","returns":"","text":"json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])","zh_from":"same-version-manual"}],"translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/functions-aggregate.html","sha256":"68da7af09e2749a855188bbbff99ae036fc7eece4e19b8e048baffd28aa3ca59"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"FUNCTIONS-AGGREGATE-TABLE","file":"functions-aggregate.html","sha256":"31d3dcd36ef353484b4b3535f9f0d1cc239c3910146257fe5178f99b90b501e2","slug":"18"}},"MeasuredEvidence":{}},"Text":{"Collection":"func","Key":"json-objectagg","SourceDatabase":"center","Version":"18","Locale":"en","Title":"json_objectagg","Summary":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","BodyHTML":"Behaves like \u003ccode\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","SourceRevision":"wiki-repair-20261023:4ed3ba4c6c3fccfdcd999f56c3b9c1d1a139c4d17edfd9527a1590596a6c7559","ContentHash":"28c2e4c5e61ad6f488a9368831ba00362e4f744a66900340b3a64c17b5ab6509","Payload":{"description":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","description_html":"Behaves like \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","signatures":[{"description":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","description_html":"Behaves like \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","description_zh":"行为与 json_object 相同，只是它作为一个聚合函数，因此只接受一个 key_expression 参数和一个 value_expression 参数。","description_zh_html":"行为与 \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e 相同，只是它作为一个聚合函数，因此只接受一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e 参数和一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e 参数。","examples":[{"expr":"SELECT json_objectagg(k:v) FROM (VALUES ('a'::text,current_date),('b',current_date + 1)) AS t(k,v)","result":"{ \"a\" : \"2022-05-10\", \"b\" : \"2022-05-11\" }"}],"html":"\u003ccode class=\"function\"\u003ejson_objectagg\u003c/code\u003e ( [\u003cspan class=\"optional\"\u003e { \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e { \u003ccode class=\"literal\"\u003eVALUE\u003c/code\u003e | ':' } \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e } \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e | \u003ccode class=\"literal\"\u003eABSENT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eON NULL\u003c/code\u003e\u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eWITH\u003c/code\u003e | \u003ccode class=\"literal\"\u003eWITHOUT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eKEYS\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eRETURNING\u003c/code\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003edata_type\u003c/code\u003e\u003c/em\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eFORMAT JSON\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eENCODING UTF8\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] \u003c/span\u003e])","returns":"","text":"json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])","zh_from":"same-version-manual"}]}},"RequestedLocale":"en","Fallback":false,"Versions":["16","17","18","19","20"],"Locales":["en","zh-Hans"],"Signatures":[{"Version":"18","Ordinal":0,"Hash":"a0cb6118e25cebe4de5ed15486d047d5b4a2fa7e1ce8fd3da79e102717a6b074","Text":"json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])","Returns":"","Payload":{"description":"Behaves like json_object, but as an aggregate function, so it only takes one key_expression and one value_expression parameter.","description_html":"Behaves like \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e, but as an aggregate function, so it only takes one \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e and one \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e parameter.","description_zh":"行为与 json_object 相同，只是它作为一个聚合函数，因此只接受一个 key_expression 参数和一个 value_expression 参数。","description_zh_html":"行为与 \u003ccode class=\"function\"\u003ejson_object\u003c/code\u003e 相同，只是它作为一个聚合函数，因此只接受一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e 参数和一个 \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e 参数。","examples":[{"expr":"SELECT json_objectagg(k:v) FROM (VALUES ('a'::text,current_date),('b',current_date + 1)) AS t(k,v)","result":"{ \"a\" : \"2022-05-10\", \"b\" : \"2022-05-11\" }"}],"html":"\u003ccode class=\"function\"\u003ejson_objectagg\u003c/code\u003e ( [\u003cspan class=\"optional\"\u003e { \u003cem class=\"replaceable\"\u003e\u003ccode\u003ekey_expression\u003c/code\u003e\u003c/em\u003e { \u003ccode class=\"literal\"\u003eVALUE\u003c/code\u003e | ':' } \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue_expression\u003c/code\u003e\u003c/em\u003e } \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eNULL\u003c/code\u003e | \u003ccode class=\"literal\"\u003eABSENT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eON NULL\u003c/code\u003e\u003c/span\u003e] [\u003cspan class=\"optional\"\u003e { \u003ccode class=\"literal\"\u003eWITH\u003c/code\u003e | \u003ccode class=\"literal\"\u003eWITHOUT\u003c/code\u003e } \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eKEYS\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eRETURNING\u003c/code\u003e \u003cem class=\"replaceable\"\u003e\u003ccode\u003edata_type\u003c/code\u003e\u003c/em\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eFORMAT JSON\u003c/code\u003e [\u003cspan class=\"optional\"\u003e\u003ccode class=\"literal\"\u003eENCODING UTF8\u003c/code\u003e\u003c/span\u003e] \u003c/span\u003e] \u003c/span\u003e])","returns":"","text":"json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL] [ { WITH | WITHOUT } UNIQUE [KEYS] ] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ])","zh_from":"same-version-manual"}}],"Spellings":null,"SQLState":null,"Evidence":null}
