--- 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##> |