Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileExactExclusive

quantileExactExclusive

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

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

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

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

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

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

البنية

quantileExactExclusive(level)(expr)

المعلمات

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

الوسائط

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

يعيد الكوانتايل عند المستوى المحدد. Float64

أمثلة

حساب الكوانتايل الحصري الدقيق

SELECT quantileExactExclusive(0.25)(number) FROM numbers(5);
┌─quantileExactExclusive(0.25)(number)─┐
│                                  0.5 │
└──────────────────────────────────────┘

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

SELECT quantileExactExclusive(0.1)(number), quantileExactExclusive(0.9)(number) FROM numbers(10);
┌─quantileExactExclusive(0.1)(number)─┬─quantileExactExclusive(0.9)(number)─┐
│                 0.10000000000000009 │                                 8.9 │
└─────────────────────────────────────┴─────────────────────────────────────┘
Navigation