Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactInclusive

quantileExactInclusive

أُضيفت في: v20.1.0

على غرار quantileExact، تحسب هذه الدالة الكمّ الدقيق لتسلسل بيانات رقمية.

تعادل هذه الدالة quantileExact، لكنها تستخدم الطريقة التضمينية لحساب الكمّات، كما هو موضح في طريقة R-7.

عند استخدام هذه الدالة، يُحسب الكمّ بحيث تأخذ صيغة الاستيفاء لكمّ معيّن p الشكل التالي: x[floor((n-1)*p)] + ((n-1)*p - floor((n-1)*p)) * (x[floor((n-1)*p)+1] - x[floor((n-1)*p)])، حيث إن x هي المصفوفة المرتَّبة.

للحصول على القيمة الدقيقة، تُجمَع جميع القيم المُمرَّرة في مصفوفة، ثم تُرتَّب بالكامل. ويبلغ تعقيد خوارزمية الفرز O(N·log(N))، حيث N = std::distance(first, last) من المقارنات.

عند استخدام عدة دوال quantile* بمستويات مختلفة في استعلام، لا تُدمَج الحالات الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يكون عليه). في هذه الحالة، استخدم الدالة quantiles.

البنية

quantileExactInclusive(level)(expr)

المعلمات

  • level — مستوى كمّ. عدد ثابت بفاصلة عائمة من 0 إلى 1 (شاملًا). نوصي باستخدام قيمة level ضمن النطاق [0.01, 0.99]. Float*

الوسائط

  • expr — تعبير على قيم العمود ينتج أنواع بيانات رقمية، أو Date أو DateTime. (U)Int* أو Float* أو Date أو DateTime

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

يعيد قيمة كمّ للمستوى المحدد. Float64

أمثلة

حساب كمّ الشامل الدقيق

SELECT quantileExactInclusive(0.25)(number) FROM numbers(5);
┌─quantileExactInclusive(0.25)(number)─┐
│                                    1 │
└──────────────────────────────────────┘

حساب مستويات كمّ متعددة

SELECT quantileExactInclusive(0.1)(number), quantileExactInclusive(0.9)(number) FROM numbers(10);
┌─quantileExactInclusive(0.1)(number)─┬─quantileExactInclusive(0.9)(number)─┐
│                  0.8999999999999999 │                                 8.1 │
└─────────────────────────────────────┴─────────────────────────────────────┘
Navigation