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 │
└─────────────────────────────────────┴─────────────────────────────────────┘