quantileExactLow
أُضيف في: v20.8.0
على غرار quantileExact، تحسب هذه الدالة المئين الدقيق لتسلسل من البيانات الرقمية.
للحصول على القيمة الدقيقة، تُجمع جميع القيم المُمرَّرة في مصفوفة، ثم تُرتَّب بالكامل.
يبلغ تعقيد خوارزمية الترتيب O(N·log(N))، حيث N = std::distance(first, last) هو عدد المقارنات.
تعتمد القيمة المُعادة على مستوى المئين وعدد العناصر في المجموعة المحددة؛ أي إذا كان المستوى 0.5، فإن الدالة تُعيد قيمة الوسيط الأدنى عند وجود عدد زوجي من العناصر، وتُعيد قيمة الوسيط الأوسط عند وجود عدد فردي من العناصر. ويُحسَب الوسيط بطريقة مماثلة لتنفيذ median_low المستخدم في بايثون.
أما بالنسبة إلى جميع المستويات الأخرى، فيُعاد العنصر عند الفهرس الموافق للقيمة level * size_of_array.
عند استخدام عدة دوال quantile* بمستويات مختلفة في استعلام، لا تُدمج الحالات الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يعمل به).
في هذه الحالة، استخدم الدالة quantiles.
البنية
quantileExactLow(level)(expr)الأسماء البديلة: medianExactLow
المعلمات
level— اختياري. مستوى المئين. عدد ثابت ذو فاصلة عائمة من 0 إلى 1. نوصي باستخدام قيمةlevelضمن النطاق[0.01, 0.99]. القيمة الافتراضية: 0.5. عندlevel=0.5تحسب الدالة الوسيط.Float*
الوسيطات
expr— تعبير على قيم العمود ينتج أنواع بيانات رقمية أوDateأوDateTimeأوDateTime64.(U)Int*أوFloat*أوDecimal*أوDateأوDateTimeأوDateTime64
القيمة المعادة
تعيد المئين للمستوى المحدد. بالنسبة إلى أنواع البيانات الرقمية، يطابق تنسيق الإخراج تنسيق الإدخال. (U)Int* أو Float* أو Decimal* أو Date أو DateTime أو DateTime64
أمثلة
حساب المئين الأدنى الدقيق
SELECT quantileExactLow(number) FROM numbers(10);┌─quantileExactLow(number)─┐
│ 4 │
└──────────────────────────┘حساب مستوى المئين معيّن
SELECT quantileExactLow(0.1)(number) FROM numbers(10);┌─quantileExactLow(0.1)(number)─┐
│ 1 │
└───────────────────────────────┘