JSON_ARRAYAGG
Applies to: ✅ Data 360 SQL ✅ Tableau Hyper API
Aggregates the input values from a group into a JSON array, using an optional, user-supplied order.
<value>: The single expression collected into the JSON array.
DISTINCT: Keeps only distinct values. When you useDISTINCT, theORDER BYexpression (including its collation) must match<value>.ORDER BY <sort_expression> [, ...]: Orders the elements within the array (an aggregate-local ordering). Each sort key acceptsASC/DESCandNULLS FIRST/NULLS LAST.ABSENT ON NULL: SkipsNULLinputs so they don’t appear in the array. This is the default.NULL ON NULL: KeepsNULLinputs as JSONnullelements.
A json value containing the aggregated array.
Null handling:
- With the default
ABSENT ON NULL,NULLinputs are dropped. A group whose values are allNULLreturns an empty array ([]). - With
NULL ON NULL,NULLinputs are kept as JSONnullelements.
- The
FILTERclause isn’t supported forjson_arrayagg. - If no
ORDER BYis specified, the resulting array has an implementation-defined, non-deterministic order. json_arrayaggwithORDER BYisn’t supported in combination withROLLUP,CUBE, orGROUPING SETS.- The
<value>is serialized to JSON using the json_scalar conversion rules.
Order elements by id and drop the NULL name (the default behavior).
Returns ["Ada","Grace"].
Use NULL ON NULL to retain NULL inputs as JSON null elements.
Returns [20,null,30].
Build a JSON array of product names for each category.