ReferenceSQL ReferenceAggregate Functions

uniqExact

Calculates the exact number of different argument values.

Calculates the exact number of different argument values.

:::warning The uniqExact function uses more memory than uniq, because the size of the state has unbounded growth as the number of different values increases. Use the uniqExact function if you absolutely need an exact result. Otherwise use the uniq function. :::

Syntax

uniqExact(x[, ...])

Arguments

Returned value

Returns the exact number of different argument values as a UInt64. UInt64

Examples

Basic usage

CREATE TABLE example_data
(
    id UInt32,
    category String
)
ENGINE = Memory;

INSERT INTO example_data VALUES
(1, 'A'), (2, 'B'), (3, 'A'), (4, 'C'), (5, 'B'), (6, 'A');

SELECT uniqExact(category) as exact_unique_categories
FROM example_data;
┌─exact_unique_categories─┐
│                       3 │
└─────────────────────────┘

Multiple arguments

SELECT uniqExact(id, category) as exact_unique_combinations
FROM example_data;
┌─exact_unique_combinations─┐
│                         6 │
└───────────────────────────┘

Introduced in version 1.1.