Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileTiming

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 │
└───────────────────────────────┘

انظر أيضًا

Navigation