title | description | ms.reviewer | ms.topic | ms.date |
---|---|---|---|---|
make_set_if() (aggregation function) |
Learn how to use the make_set_if() function to create a dynamic JSON object of a set of distinct values that an expression takes where the predicate evaluates to true. |
alexans |
reference |
11/13/2023 |
Creates a dynamic
array of the set of distinct values that expr takes in records for which predicate evaluates to true
.
[!INCLUDE ignore-nulls]
[!INCLUDE data-explorer-agg-function-summarize-note]
make_set_if(
expr,
predicate [,
maxSize])
[!INCLUDE syntax-conventions-note]
Name | Type | Required | Description |
---|---|---|---|
expr | string |
✔️ | The expression used for the aggregation calculation. |
predicate | string |
✔️ | A predicate that has to evaluate to true in order for expr to be added to the result. |
maxSize | int |
The maximum number of elements returned. The default and max value is 1048576. |
Returns a dynamic
array of the set of distinct values that expr takes in records for which predicate evaluates to true
. The array's sort order is undefined.
Tip
To only count the distinct values, use dcountif().
make_set
function, which does the same, without predicate expression.
The following example shows a list of names with more than 4 letters.
[!div class="nextstepaction"] Run the query
let T = datatable(name:string, day_of_birth:long)
[
"John", 9,
"Paul", 18,
"George", 25,
"Ringo", 7
];
T
| summarize make_set_if(name, strlen(name) > 4)
Output
set_name |
---|
["George", "Ringo"] |