quantileTiming
أُضيف في: v1.1.0
تحسب هذه الدالة، باستخدام الدقة المحددة، الكوانتايل لتسلسل من القيم الرقمية.
النتيجة حتمية (أي إنها لا تعتمد على ترتيب معالجة الاستعلام). وقد جرى تحسين هذه الدالة للعمل مع التسلسلات التي تصف توزيعات مثل أزمنة تحميل صفحات الويب أو أزمنة استجابة الخدمات الخلفية.
عند استخدام عدة دوال quantile* بمستويات مختلفة ضمن استعلام واحد، لا تُدمج الحالات الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يعمل به).
في هذه الحالة، استخدم الدالة quantiles.
الدقة
يكون الحساب دقيقًا إذا:
- لا يتجاوز العدد الإجمالي للقيم 5670.
- يتجاوز العدد الإجمالي للقيم 5670، لكن زمن تحميل الصفحة أقل من 1024ms.
بخلاف ذلك، تُقرَّب نتيجة الحساب إلى أقرب مضاعف لـ 16 ms.
الصياغة
quantileTiming(level)(expr)الأسماء البديلة: medianTiming
المعلمات
level— اختياري. مستوى الكوانتايل. عدد ثابت ذو فاصلة عائمة من 0 إلى 1. نوصي باستخدام قيمةlevelضمن النطاق[0.01, 0.99]. القيمة الافتراضية: 0.5. عندlevel=0.5تحسب الدالة الوسيط.Float*
الوسائط
expr— تعبير على قيم العمود ينتج أنواع بيانات رقمية، أوDateأوDateTime. إذا مُرِّرت قيم سالبة إلى الدالة، يكون السلوك غير معرّف. وإذا كانت القيمة أكبر من 30,000 (زمن تحميل صفحة يزيد على 30 ثانية)، فيُفترض أنها 30,000.(U)Int*أوFloat*أوDateأوDateTime
القيمة المعادة
كوانتايل المستوى المحدد. إذا لم تُمرَّر أي قيم إلى الدالة (عند استخدام quantileTimingIf)، فستُعاد القيمة NaN. والغرض من ذلك هو التمييز بين هذه الحالات والحالات التي تكون نتيجتها صفرًا. Float32
أمثلة
حساب كوانتايل التوقيت
CREATE TABLE t (response_time UInt32) ENGINE = Memory;
INSERT INTO t VALUES (72), (112), (126), (145), (104), (242), (313), (168), (108);
SELECT quantileTiming(response_time) FROM t;┌─quantileTiming(response_time)─┐
│ 126 │
└───────────────────────────────┘انظر أيضًا