الانتقال إلى المحتوى الرئيسي

quantilesTimingWeighted

استُحدث في: v1.1.0 تحسب هذه الدالة عدة كمّيات مئينية لتسلسل من البيانات الرقمية عند مستويات مختلفة في الوقت نفسه، وبدقة محددة، مع مراعاة وزن كل عنصر في التسلسل. تعادل هذه الدالة quantileTimingWeighted، لكنها تتيح حساب عدة مستويات من الكمّيات المئينية في تمريرة واحدة، ما يجعلها أكثر كفاءة من استدعاء دوال الكمّيات المئينية الفردية. النتيجة حتمية (أي إنها لا تعتمد على ترتيب معالجة الاستعلام). وقد حُسِّنت هذه الدالة للعمل مع التسلسلات التي تصف توزيعات مثل أزمنة تحميل صفحات الويب أو أزمنة استجابة الخادم الخلفي. الدقة يكون الحساب دقيقًا إذا:
  • لم يتجاوز العدد الإجمالي للقيم 5670.
  • تجاوز العدد الإجمالي للقيم 5670، لكن زمن تحميل الصفحة أقل من 1024 مللي ثانية.
بخلاف ذلك، تُقرَّب نتيجة الحساب إلى أقرب مضاعف لـ 16 مللي ثانية.
عند حساب الكمّيات المئينية لزمن تحميل الصفحة، تكون هذه الدالة أكثر كفاءة ودقة من quantiles.
الصيغة
quantilesTimingWeighted(level1, level2, ...)(expr, weight)
المعلمات
  • level — مستويات الكوانتايل. عدد ثابت واحد أو أكثر من الأعداد ذات الفاصلة العائمة من 0 إلى 1. نوصي باستخدام قيم level ضمن النطاق [0.01, 0.99]. Float*
الوسيطات
  • expr — تعبير على قيم عمود يُرجع عددًا من النوع Float*. إذا مُرِّرت قيم سالبة إلى الدالة، يكون السلوك غير معرّف. وإذا كانت القيمة أكبر من 30,000 (أي زمن تحميل صفحة يزيد على 30 ثانية)، فيُفترض أنها 30,000. Float*
  • weight — عمود يحتوي على أوزان عناصر التسلسل. والوزن هو عدد مرات تكرار القيمة. UInt*
القيمة المُعادة مصفوفة من الكوانتايلات للمستويات المحددة، وبالترتيب نفسه الذي حُدِّدت به المستويات. Array(Float32) أمثلة حساب عدة كوانتايلات زمنية موزونة
Query
SELECT quantilesTimingWeighted(0.5, 0.99)(response_time, weight) FROM t;
Response
┌─quantilesTimingWeighted(0.5, 0.99)(response_time, weight)─┐
│ [112, 162]                                                │
└───────────────────────────────────────────────────────────┘
راجع أيضًا
آخر تعديل في ٢٥ يونيو ٢٠٢٦