> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> يحسب العدد التقريبي لقيم الوسائط المختلفة. وهو مماثل لـ uniqCombined، لكنه يستخدم تجزئة 64 بت لجميع أنواع البيانات بدلًا من استخدامها فقط مع نوع البيانات String.

# uniqCombined64

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

أُضيف في: v20.1.0

يحسب العدد التقريبي لقيم الوسائط المختلفة.
وهو مماثل لـ [`uniqCombined`](/docs/ar/reference/functions/aggregate-functions/uniqCombined)، لكنه يستخدم تجزئة 64 بت لجميع أنواع البيانات بدلًا من استخدامها فقط مع نوع البيانات String.

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

<Note>
  وبما أنها تستخدم تجزئة 64 بت لجميع الأنواع، فإن النتيجة لا تعاني من ارتفاع كبير جدًا في نسبة الخطأ عند أعداد العناصر المميّزة الأكبر بكثير من `UINT_MAX`، كما هو الحال في [`uniqCombined`](/docs/ar/reference/functions/aggregate-functions/uniqCombined) الذي يستخدم تجزئة 32 بت للأنواع غير String.
</Note>

بالمقارنة مع الدالة [uniq](/docs/ar/reference/functions/aggregate-functions/uniq)، فإن الدالة uniqCombined64:

* تستهلك ذاكرة أقل بعدة مرات
* تحسب بدقة أعلى بعدة مرات

<Accordion title="تفاصيل التنفيذ">
  تحسب هذه الدالة تجزئة 64 بت لجميع أنواع البيانات لجميع المعلمات في التجميع، ثم تستخدمها في الحسابات.
  وهي تستخدم مزيجًا من ثلاث خوارزميات: المصفوفة، وجدول التجزئة، و[HyperLogLog](https://en.wikipedia.org/wiki/HyperLogLog) مع جدول لتصحيح الأخطاء:

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

**الصياغة**

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

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

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

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

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

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

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

**أمثلة**

**مثال على مجموعة بيانات كبيرة**

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

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

**مقارنة بـ uniqCombined**

```sql title=Query theme={null}
-- uniqCombined64 with large dataset
SELECT uniqCombined64(number) FROM numbers(1e10);

-- uniqCombined with same dataset shows poor approximation
SELECT uniqCombined(number) FROM numbers(1e10);
```

```response title=Response theme={null}
┌─uniqCombined64(number)─┐
│             9998568925 │
└────────────────────────┘
approximately 10.00 billion
┌─uniqCombined(number)─┐
│           5545308725 │
└──────────────────────┘
approximately 5.55 billion
```

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

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