Skip to main content

uniqExact

Introduced in: v1.1.0 Calculates the exact number of different argument values.
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
Query
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;
Response
┌─exact_unique_categories─┐
│                       3 │
└─────────────────────────┘
Multiple arguments
Query
SELECT uniqExact(id, category) as exact_unique_combinations
FROM example_data;
Response
┌─exact_unique_combinations─┐
│                         6 │
└───────────────────────────┘
See Also
Last modified on June 8, 2026