unique — aggregate function to return a list of the specified number of unique items in the aggregate window.
This function takes the name of a column in the incoming data (or a StreamBase
expression that contains a column name), plus an integer to specify the number of
unique results desired. The function returns a list containing the
numuniq number of unique column values, whose data
type is the same as the queried column.
The unique() function maintains an exact list of unique values until
numuniq is reached, and does not report changes as
the number of values added exceeds
If a value in the reported unique list is removed, it is replaced by some other
unique value, if one exists. If there are more than
numuniq values, there is no guarantee which
numuniq values are reported.
You can use unique() in SNAPSHOT or SNAPSHOT_AND_CONTINUOUS queries where the list return type is handled normally. However, when using unique() as part of an author-time aggregation, you must wrap the unique() function in joinlist() to convert the returned list to a formatted string.
This example shows how to use dynamic aggregation to find the number of unique values in a column. In the Hello LiveView sample, create a query that finds the number of unique alerts in the LVAlerts table, up to five. Follow these steps:
In LiveView Desktop connected to a server running the Hello LiveView sample, select the LVAlerts table from the Tables pane of the LiveView Tables view.
In the Select field, enter:
unique(Severity, 5) as SeverityList
Make sure the Query field is empty.
The query results open in a grid view. LiveView Server continously recalculates number of alerts whenever the rows returned by the query predicate change.