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