uniq
أُضيفت في: v1.1.0
تحسب العدد التقريبي للقيم المختلفة للوسيطة.
تستخدم هذه الدالة خوارزمية تكيفية لأخذ العينات. وبالنسبة إلى حالة الحساب، تستخدم الدالة عيّنة من قيم hash للعناصر حتى 65536. تتميز هذه الخوارزمية بدقة وكفاءة عاليتين جدًا على CPU. وعندما يحتوي الاستعلام على عدة دوال من هذا النوع، يكون استخدام uniq قريبًا جدًا في السرعة من استخدام الدوال التجميعية الأخرى.
تفاصيل التنفيذ
تحسب هذه الدالة قيمة hash لجميع parameters في التجميع، ثم تستخدمها في الحسابات.
وهي تستخدم خوارزمية تكيفية لأخذ العينات.
وبالنسبة إلى حالة الحساب، تستخدم الدالة عيّنة من قيم hash للعناصر حتى 65536.
تتميز هذه الخوارزمية بدقة وكفاءة عاليتين جدًا على CPU.
وعندما يحتوي الاستعلام على عدة دوال من هذا النوع، يكون استخدام uniq قريبًا جدًا في السرعة من استخدام الدوال التجميعية الأخرى.
الصياغة
uniq(x[, ...])الوسائط
x— تأخذ الدالة عددًا متغيرًا من المعاملات.Tuple(T)أوArray(T)أوDateأوDateTimeأوStringأو(U)Int*أوFloat*أوDecimal
القيمة المعادة
تعيد عددًا من النوع 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 │
└─────────────────────┘انظر أيضًا