quantilesTDigest
أُضيفت في: v1.1.0
تحسب عدة كوانتايل تقريبية لتسلسل بيانات رقمية عند مستويات مختلفة في الوقت نفسه باستخدام خوارزمية t-digest.
تعادل هذه الدالة quantileTDigest، لكنها تتيح حساب عدة مستويات كوانتايل في تمريرة واحدة، ما يجعلها أكثر كفاءة من استدعاء دوال الكوانتايل الفردية.
استهلاك الذاكرة هو log(n)، حيث إن n هو عدد القيم. وتعتمد النتيجة على ترتيب تنفيذ الاستعلام، لذا فهي غير حتمية.
أداء هذه الدالة أقل من أداء quantiles أو quantilesTiming. ومن حيث نسبة حجم State إلى الدقة، فهذه الدالة أفضل بكثير من quantiles.
الصياغة
quantilesTDigest(level1, level2, ...)(expr)المعلمات
level— مستويات الكوانتايل. رقم ثابت واحد أو أكثر من الأعداد ذات الفاصلة العائمة من 0 إلى 1. نوصي باستخدام قيمlevelضمن النطاق[0.01, 0.99].Float*
الوسائط
expr— تعبير على قيم العمود ينتج أنواع بيانات رقمية أوDateأوDateTime.(U)Int*أوFloat*أوDateأوDateTime
القيمة المُعادة
مصفوفة من الكوانتايل التقريبية للمستويات المحددة، وبالترتيب نفسه الذي حُدِّدت به هذه المستويات. بالنسبة إلى مُدخلات Date وDateTime، يطابق تنسيق الإخراج تنسيق الإدخال. Array(Float32) أو Array(Date) أو Array(DateTime)
أمثلة
حساب عدة كوانتايل باستخدام t-digest
SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74] │
└───────────────────────────────────────────┘