2020-06-18 08:24:31 +00:00
---
2022-08-28 14:53:34 +00:00
slug: /en/sql-reference/aggregate-functions/reference/uniq
2022-04-09 13:29:05 +00:00
sidebar_position: 190
2020-06-18 08:24:31 +00:00
---
2022-06-02 10:55:18 +00:00
# uniq
2020-06-18 08:24:31 +00:00
Calculates the approximate number of different values of the argument.
``` sql
uniq(x[, ...])
```
2021-02-15 21:33:53 +00:00
**Arguments**
2020-06-18 08:24:31 +00:00
The function takes a variable number of parameters. Parameters can be `Tuple` , `Array` , `Date` , `DateTime` , `String` , or numeric types.
**Returned value**
- A [UInt64 ](../../../sql-reference/data-types/int-uint.md )-type number.
**Implementation details**
Function:
- Calculates a hash for all parameters in the aggregate, then uses it in calculations.
2021-12-27 17:12:19 +00:00
- Uses an adaptive sampling algorithm. For the calculation state, the function uses a sample of element hash values up to 65536. This algorithm is very accurate and very efficient on the CPU. When the query contains several of these functions, using `uniq` is almost as fast as using other aggregate functions.
2020-06-18 08:24:31 +00:00
2021-05-27 19:44:11 +00:00
- Provides the result deterministically (it does not depend on the query processing order).
2020-06-18 08:24:31 +00:00
We recommend using this function in almost all scenarios.
**See Also**
2020-07-09 15:10:35 +00:00
- [uniqCombined ](../../../sql-reference/aggregate-functions/reference/uniqcombined.md#agg_function-uniqcombined )
- [uniqCombined64 ](../../../sql-reference/aggregate-functions/reference/uniqcombined64.md#agg_function-uniqcombined64 )
- [uniqHLL12 ](../../../sql-reference/aggregate-functions/reference/uniqhll12.md#agg_function-uniqhll12 )
- [uniqExact ](../../../sql-reference/aggregate-functions/reference/uniqexact.md#agg_function-uniqexact )
2021-05-11 14:36:26 +00:00
- [uniqTheta ](../../../sql-reference/aggregate-functions/reference/uniqthetasketch.md#agg_function-uniqthetasketch )