Skip to content

Latest commit

 

History

History
64 lines (45 loc) · 2.23 KB

make-set-if-aggregation-function.md

File metadata and controls

64 lines (45 loc) · 2.23 KB
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

make_set_if() (aggregation function)

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]

Syntax

make_set_if(expr, predicate [, maxSize])

[!INCLUDE syntax-conventions-note]

Parameters

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

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().

Related content

make_set function, which does the same, without predicate expression.

Example

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"]