Skip to main content

uniq

أُضيفت في: v1.1.0 تحسب العدد التقريبي للقيم المختلفة للوسيطة. تستخدم هذه الدالة خوارزمية تكيفية لأخذ العينات. وبالنسبة إلى حالة الحساب، تستخدم الدالة عيّنة من قيم تجزئة للعناصر حتى 65536. تتميز هذه الخوارزمية بدقة وكفاءة عاليتين جدًا على CPU. وعندما يحتوي الاستعلام على عدة دوال من هذا النوع، يكون استخدام uniq قريبًا جدًا في السرعة من استخدام الدوال التجميعية الأخرى.
تحسب هذه الدالة قيمة تجزئة لجميع المعلمات في التجميع، ثم تستخدمها في الحسابات. وهي تستخدم خوارزمية تكيفية لأخذ العينات. وبالنسبة إلى حالة الحساب، تستخدم الدالة عيّنة من قيم تجزئة للعناصر حتى 65536. تتميز هذه الخوارزمية بدقة وكفاءة عاليتين جدًا على CPU. وعندما يحتوي الاستعلام على عدة دوال من هذا النوع، يكون استخدام uniq قريبًا جدًا في السرعة من استخدام الدوال التجميعية الأخرى.تحتفظ العيّنة بقيم تجزئة بطول 32 بت، وهذه لا تستطيع التمييز بين أكثر من بضعة مليارات من القيم، لذلك يُحتفظ أيضًا بعيّنة صغيرة شديدة التخفيف من قيم التجزئة الكاملة بطول 64 بت (نحو قيمة تجزئة واحدة لكل 262144 قيمة، وبحد أقصى 16384 قيمة تجزئة)، ويتحوّل التقدير إلى الاعتماد عليها عند نحو ملياري قيمة. وبذلك يظل التقدير دقيقًا (في حدود 1% تقريبًا) عند أعداد عناصر تبلغ مئات المليارات وأكثر، في حين كانت الخوادم الأقدم من الإصدار 26.8 تعيد نتائج عديمة المعنى (issue #6078). ولا تتضمن الحالات التي كتبتها تلك الخوادم عيّنة 64 بت، لذا فإن الدمج معها لا يحافظ إلا على دقة 32 بت للقيم المدمجة منها.
نوصي باستخدام هذه الدالة بدلًا من المتغيرات الأخرى في جميع السيناريوهات تقريبًا.
الصياغة
الوسائط القيمة المعادة تعيد عددًا من النوع UInt64 يمثّل العدد التقريبي للقيم المختلفة. UInt64 أمثلة مثال للاستخدام
Query
Response
عدة وسائط
Query
Response
انظر أيضًا