quantilesExact
أُضيفت في: v1.1.0
تحسب هذه الدالة بدقة عدة كوانتايلات لتسلسل بيانات رقمية عند مستويات مختلفة في الوقت نفسه.
تعادل هذه الدالة quantileExact، لكنها تتيح حساب عدة مستويات من الكوانتايل في تمريرة واحدة، ما يجعلها أكثر كفاءة من استدعاء دوال الكوانتايل الفردية.
للحصول على قيم دقيقة، تُجمَع جميع القيم المُمرَّرة في مصفوفة، ثم تُرتَّب جزئيًا. لذلك، تستهلك الدالة ذاكرة بمقدار O(n)، حيث إن n هو عدد القيم المُمرَّرة.
الصيغة
quantilesExact(level1, level2, ...)(expr)المعلمات
level— مستويات الكوانتايل. عدد ثابت واحد أو أكثر من الأعداد العائمة من 0 إلى 1. نوصي باستخدام قيمlevelضمن النطاق[0.01, 0.99].Float*
الوسائط
expr— تعبير يعتمد على قيم العمود وينتج أنواع بيانات رقمية، أوDateأوDateTimeأوDateTime64.(U)Int*أوInt128أوUInt128أوInt256أوUInt256أوFloat*أوDecimal*أوDateأوDateTimeأوDateTime64
القيمة المُعادة
مصفوفة من الكوانتايلات للمستويات المحددة، وبالترتيب نفسه الذي حُددت به هذه المستويات. بالنسبة إلى أنواع البيانات الرقمية، يطابق تنسيق الإخراج تنسيق الإدخال. Array((U)Int*) أو Array(Int128) أو Array(UInt128) أو Array(Int256) أو Array(UInt256) أو Array(Float*) أو Array(Decimal*) أو Array(Date) أو Array(DateTime) أو Array(DateTime64)
أمثلة
حساب عدة كوانتايلات دقيقة
SELECT quantilesExact(0.25, 0.5, 0.75)(number) FROM numbers(10)┌─quantilesExact(0.25, 0.5, 0.75)(number)─┐
│ [2,5,7] │
└─────────────────────────────────────────┘