#

Riak TS Aggregate Functions

You can turn a set of rows in your Riak TS table into a value with the aggregate feature. This document will walk you through the functions that make up aggregation in Riak TS.

## Aggregate Functions

`COUNT()`

- Returns the number of entries that match a specified criteria.`SUM()`

- Returns the sum of entries that match a specified criteria.`MEAN()`

&`AVG()`

- Returns the average of entries that match a specified criteria.`MIN()`

- Returns the smallest value of entries that match a specified criteria.`MAX()`

- Returns the largest value of entries that match a specified criteria.`STDDEV()`

/`STDDEV_SAMP()`

- Returns the statistical standard deviation of all entries that match a specified criteria using Sample Standard Deviation.`STDDEV_POP()`

- Returns the statistical standard deviation of all entries that match a specified criteria using Population Standard Deviation.

Note:You cannot simply negate an aggregate function. If you attempt something like:`select -count(temperature)`

, you will receive an error. Instead, you can achieve negation with`-1*`

; for instance:`-1*COUNT(...)`

.

`AVG`

& `MEAN`

Mean average over the specified `sint64`

or `double`

column.

```
SELECT AVG(temperature) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

Returns `NULL`

if no values were returned or all values were `NULL`

.

Column Input Type | Return Type |
---|---|

sint64 | sint64 |

double | double |

`COUNT`

Count the number of returned values.

```
SELECT COUNT(*) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

If a single column is used as an input then `NULL`

values are ignored. If all values were `NULL`

or no rows were returned by the query then `NULL`

is returned.

Column Input Type | Return Type |
---|---|

Any | sint64 |

`*` |
sint64 |

`MAX`

The largest value from the set of values returned by the query.

```
SELECT MAX(temperature) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

Returns `NULL`

if no values were returned or all values were `NULL`

.

Column Input Type | Return Type |
---|---|

sint64 | sint64 |

double | double |

`MIN`

The smallest value from the set of values returned by the query.

```
SELECT MIN(temperature) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

Returns `NULL`

if no values were returned or all values were `NULL`

.

Column Input Type | Return Type |
---|---|

sint64 | sint64 |

double | double |

`STDDEV`

, `STDDEV_SAMP`

& `STDDEV_POP`

Calculate the standard deviation for a set of values returned by the query.

```
SELECT STDDEV(temperature) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

Returns `NULL`

if less than two non-null values were returned.

Column Input Type | Return Type |
---|---|

sint64 | double |

double | double |

`SUM`

The sum of all the values of one `sint64`

or `double`

column returned by the query.

```
SELECT SUM(temperature) FROM GeoCheckin
WHERE time > 1452252523182 AND time < 1452252543182 AND myfamily = 'family1' AND myseries = 'series1'
```

Returns `NULL`

if no values were returned or all values were `NULL`

.

Column Input Type | Return Type |
---|---|

sint64 | sint64 |

double | double |