> ## 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.

# إعدادات الجلسة group_by_*

> إعدادات الجلسة في ClickHouse ضمن المجموعة المُولَّدة group_by_*.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>النوع</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>القيمة الافتراضية</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          يمكن تغييره دون إعادة التشغيل
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

تتوفر هذه الإعدادات في [system.settings](/docs/ar/reference/system-tables/settings)، وهي مُولَّدة تلقائيًا من [المصدر](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

<div id="group_by_overflow_mode">
  ## group\_by\_overflow\_mode
</div>

<SettingsInfoBlock type="OverflowModeGroupBy" default_value="throw" />

يحدد ما يحدث عندما يتجاوز عدد المفاتيح الفريدة للتجميع الحد المسموح به:

* `throw`: طرح استثناء
* `break`: إيقاف تنفيذ الاستعلام وإرجاع النتيجة الجزئية
* `any`: متابعة التجميع للمفاتيح التي دخلت إلى المجموعة، ولكن من دون إضافة مفاتيح جديدة إليها.

يتيح لك استخدام القيمة 'any' تشغيل تقريب لـ GROUP BY. وتعتمد جودة
هذا التقريب على الطبيعة الإحصائية للبيانات.

<div id="group_by_two_level_threshold">
  ## group\_by\_two\_level\_threshold
</div>

<SettingsInfoBlock type="UInt64" default_value="100000" />

يبدأ التجميع ثنائي المستوى عند هذا العدد من المفاتيح. 0 - العتبة غير معيّنة.

<div id="group_by_two_level_threshold_bytes">
  ## group\_by\_two\_level\_threshold\_bytes
</div>

<SettingsInfoBlock type="UInt64" default_value="50000000" />

اعتبارًا من أي حجم، بالبايت، لحالة التجميع يبدأ استخدام التجميع ثنائي المستوى. 0 - يعني أن العتبة غير معيّنة. ويُستخدم التجميع ثنائي المستوى عند تفعيل واحدة على الأقل من العتبات.

<div id="group_by_use_nulls">
  ## group\_by\_use\_nulls
</div>

<SettingsInfoBlock type="Bool" default_value="0" />

يغيّر الطريقة التي يتعامل بها [بند GROUP BY](/docs/ar/reference/statements/select/group-by) مع أنواع مفاتيح التجميع.
عند استخدام المحددات `ROLLUP` أو `CUBE` أو `GROUPING SETS`، قد لا تُستخدم بعض مفاتيح التجميع في إنتاج بعض صفوف النتائج.
تُملأ الأعمدة الخاصة بهذه المفاتيح إما بالقيمة الافتراضية أو بـ `NULL` في الصفوف المقابلة، وذلك وفقًا لهذا الإعداد.

القيم الممكنة:

* 0 — تُستخدم القيمة الافتراضية لنوع مفتاح التجميع لتمثيل القيم المفقودة.
* 1 — ينفّذ ClickHouse ‏`GROUP BY` بالطريقة نفسها التي يحددها معيار SQL. وتُحوَّل أنواع مفاتيح التجميع إلى [Nullable](/docs/ar/reference/data-types/nullable). وتُملأ الأعمدة الخاصة بمفاتيح التجميع المقابلة بقيمة [NULL](/docs/ar/reference/syntax#null) في الصفوف التي لم تُستخدم فيها.

انظر أيضًا:

* [بند GROUP BY](/docs/ar/reference/statements/select/group-by)
