> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> يحسب العدد التقريبي للقيم المختلفة للوسيطات.

# uniqCombined

<div id="uniqCombined">
  ## uniqCombined
</div>

قُدِّمت في: v1.1.0

تحسب العدد التقريبي لقيم الوسيطات المختلفة.
وتوفّر النتيجة بشكل حتمي (أي إنها لا تعتمد على ترتيب معالجة الاستعلام).

<Note>
  نظرًا إلى أنها تستخدم قيمة `hash` بطول 32 بت للأنواع غير `String`، فستكون النتيجة ذات خطأ مرتفع جدًا عند الكارديناليات الأكبر بكثير من `UINT_MAX` (وسيرتفع الخطأ سريعًا بعد بضع عشرات من المليارات من القيم المميّزة).
  إذا كانت الكارديناليات أكبر من `UINT_MAX`، فينبغي استخدام [`uniqCombined64`](/ar/reference/functions/aggregate-functions/uniqCombined64) بدلًا من ذلك.
</Note>

مقارنةً بالدالة uniq، فإن الدالة uniqCombined:

* تستهلك ذاكرة أقل بعدة مرات
* تحسب بدقة أعلى بعدة مرات
* يكون أداؤها عادةً أقل قليلًا. وفي بعض السيناريوهات، قد تحقق uniqCombined أداءً أفضل من uniq، على سبيل المثال مع الاستعلامات الموزعة التي تنقل عددًا كبيرًا من حالات التجميع عبر الشبكة

<Accordion title="تفاصيل التنفيذ">
  تحسب هذه الدالة قيمة `hash` (بطول 64 بت لـ `String` و32 بت بخلاف ذلك) لجميع المعلمات في التجميع، ثم تستخدمها في الحسابات.
  وتستخدم مزيجًا من ثلاث خوارزميات: المصفوفة، وجدول `hash`، وHyperLogLog مع جدول لتصحيح الأخطاء:

  * عند وجود عدد صغير من العناصر المميّزة، تُستخدم مصفوفة
  * عندما يصبح حجم المجموعة أكبر، يُستخدم جدول `hash`
  * وعند وجود عدد أكبر من العناصر، يُستخدم HyperLogLog، الذي يشغل مقدارًا ثابتًا من الذاكرة
</Accordion>

**الصيغة**

```sql theme={null}
uniqCombined(HLL_precision)(x[, ...])
uniqCombined(x[, ...])
```

**المعلمات**

* `HLL_precision` — اختياري. اللوغاريتم للأساس 2 لعدد الخلايا في HyperLogLog. القيمة الافتراضية هي 17، وهو ما يعادل فعليًا مساحة قدرها 96 KiB ‏(2^17 خلية، 6 بتات لكل خلية). النطاق: \[12, 20]. [`UInt8`](/ar/reference/data-types/int-uint)

**الوسيطات**

* `x` — عدد متغير من الوسيطات. [`Tuple(T)`](/ar/reference/data-types/tuple) أو [`Array(T)`](/ar/reference/data-types/array) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Decimal`](/ar/reference/data-types/decimal)

**القيمة المُعادة**

تُرجع عددًا من النوع UInt64 يمثّل العدد التقريبي لقيم الوسيطات المختلفة. [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT uniqCombined(number) FROM numbers(1e6);
```

```response title=Response theme={null}
┌─uniqCombined(number)─┐
│              1001148 │
└──────────────────────┘
```

**بدقة مخصّصة**

```sql title=Query theme={null}
SELECT uniqCombined(15)(number) FROM numbers(1e5);
```

```response title=Response theme={null}
┌─uniqCombined(15)(number)─┐
│                   100768 │
└──────────────────────────┘
```

**انظر أيضًا**

* [uniq](/ar/reference/functions/aggregate-functions/uniq)
* [uniqCombined64](/ar/reference/functions/aggregate-functions/uniqCombined64)
* [uniqHLL12](/ar/reference/functions/aggregate-functions/uniqHLL12)
* [uniqExact](/ar/reference/functions/aggregate-functions/uniqExact)
* [uniqTheta](/ar/reference/functions/aggregate-functions/uniqthetasketch)
