--- hide_title: true hide_table_of_contents: true title: Aggregate Records node --- {/*##head##*/} # Aggregate Records This node is used to compute an aggregate over properties of records in the cloud database.
![](/nodes/cloud-functions/cloud-data/aggregate-records/aggregate-records.png)
You create and give a name to an aggregate.
![](/nodes/cloud-functions/cloud-data/aggregate-records/props-1.png)
Then for each aggregate name you created you choose the property to aggregate over and the type of aggregate.
![](/nodes/cloud-functions/cloud-data/aggregate-records/props-2.png)
{/*##head##*/} You can also specify filters to limit the aggretate to a select set of recrods. This is done in the same way as with the [Query Records](/nodes/data/cloud-data/query-records) node, please see those reference docs for more details. You can do aggregates over two types of properties **String** and **Number**, these are the available aggregates: **String**, for string there is only one aggregate, `Distinct` this returns the unique values for the property in all records. **Number**, for number you can use the following aggregates: - `Min` This will return the minumum value for the property for all records. - `Max` Return the maximum value for the property for all records. - `Sum` Return the sum of the property for all records. - `Avg` Return the avegage of the property for all records. ## Inputs | Data | Description | | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Class | Select the **Class** for the types of records this node should do aggregate over. When the **Class** is selected you can create filters and aggregates of the **Class**. | | Filter | This specifies the type of filter, you can choose from:

`Visual`: Specify your filter using the visual filter editor.
`JavaScript`: Specify your filter using JavaScript (this is more flexible and you can create more dynamic queyries but it's also more complex) | | Query Parameters | {/*##input:qp-\*##*/}The input for specifying the value of a query parameter.{/*##input##*/} Each paramteter used in your query will get an input where you can provide a value through a connection.{/*##input##*/} | | Aggregates | {/*##input:aggregates##*/}This a list of the aggregates you want to perform. You must provide the names of the outputs that will contain the aggregates here.{/*##input##*/} | ### Aggregate property and operation For each aggregate you create you also need to provide the property if should aggregate and the operation it should use. | Data | Description | | --------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Property | Select the property of the **Class** that this aggregate should use. | | Operation | Pick the operation that the aggregate should use. See above for which operations are available for which types. | | Signal | Description | | -------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | Do | {/*##input:do##*/}Send a signal here to perform the aggregate.{/*##input##*/} | ## Outputs | Data | Description | | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Error | {/*##output:error##*/}This output contains the error message incase something when wrong when executing the aggregate.{/*##output##*/} | | Signal | Description | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | Success | {/*##output:success##*/}A signal is sent here if the aggregate was successful and the result is ready.{/*##output##*/} | | Failure | {/*##output:failure##*/}A signal is sent here if something went wrong with the aggregate. You can find the error message via the **Error** output.{/*##output##*/} |