導入バージョン: v1.1.0
引数の異なる値のおおよその数を計算します。
この関数は適応的なサンプリングアルゴリズムを使用します。計算状態には、最大 65536 個の要素ハッシュ値のサンプルを使用します。このアルゴリズムは非常に高精度で、CPU 上でも非常に効率的です。クエリにこの関数が複数含まれている場合でも、uniq の使用速度は他の集約関数とほぼ同等です。
この関数は、集約内のすべてのパラメータに対してハッシュを計算し、それを計算に使用します。
適応的なサンプリングアルゴリズムを使用します。
計算状態には、最大 65536 個の要素ハッシュ値のサンプルを使用します。
このアルゴリズムは非常に高精度で、CPU 上でも非常に効率的です。
クエリにこの関数が複数含まれている場合でも、uniq の使用速度は他の集約関数とほぼ同等です。
ほぼすべての場面で、他のバリアントではなくこの関数を使用することを推奨します。
構文
引数
戻り値
異なる値のおおよその個数を表す UInt64 型の数値を返します。UInt64
例
使用例
CREATE TABLE example_table (
id UInt32,
category String,
value Float64
) ENGINE = Memory;
INSERT INTO example_table VALUES
(1, 'A', 10.5),
(2, 'B', 20.3),
(3, 'A', 15.7),
(4, 'C', 8.9),
(5, 'B', 12.1),
(6, 'A', 18.4);
SELECT uniq(category) as unique_categories
FROM example_table;
┌─unique_categories─┐
│ 3 │
└───────────────────┘
複数の引数
SELECT uniq(category, value) as unique_combinations
FROM example_table;
┌─unique_combinations─┐
│ 6 │
└─────────────────────┘
関連項目