Перейти к основному содержимому
Перейти к основному содержимому

uniqExact

uniqExact

Впервые появилась в версии: v1.1

Вычисляет точное количество различных значений аргумента.

Примечание

Функция uniqExact потребляет больше памяти, чем uniq, потому что размер её состояния неограниченно растёт по мере увеличения количества различных значений. Используйте функцию uniqExact только в том случае, если вам абсолютно необходим точный результат. В противном случае используйте функцию uniq.

Синтаксис

uniqExact(x[, ...])

Аргументы

Возвращаемое значение

Возвращает точное количество различных значений аргументов в виде значения типа UInt64. UInt64

Примеры

Базовый пример

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 │
└─────────────────────────┘

Несколько аргументов

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

Смотрите также