Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileTimingWeighted

quantileTimingWeighted

قُدِّمت في: v1.1.0

تحسب هذه الدالة، بالدقة المحددة، الكمّ لتسلسل من البيانات الرقمية وفقًا لوزن كل عنصر في التسلسل.

تكون النتيجة حتمية (أي إنها لا تعتمد على ترتيب معالجة الاستعلام). وقد جرى تحسين هذه الدالة للعمل مع التسلسلات التي تصف توزيعات مثل أزمنة تحميل صفحات الويب أو أزمنة استجابة الواجهة الخلفية.

عند استخدام عدة دوال quantile* بمستويات مختلفة في استعلام واحد، لا تُدمج حالاتها الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يعمل به). في هذه الحالة، استخدم الدالة quantiles.

الدقة

يكون الحساب دقيقًا إذا:

  • لا يتجاوز العدد الإجمالي للقيم 5670.
  • يتجاوز العدد الإجمالي للقيم 5670، لكن زمن تحميل الصفحة يقل عن 1024ms.

وإلا، تُقرَّب نتيجة الحساب إلى أقرب مضاعف لـ 16 ms.

الصيغة

quantileTimingWeighted(level)(expr, weight)

الأسماء البديلة: medianTimingWeighted

المعلمات

  • 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
  • weight — عمود يحتوي على أوزان عناصر التسلسل. الوزن هو عدد مرات ظهور القيمة. UInt*

القيمة المعادة

الكمّ عند المستوى المحدد. Float32

أمثلة

حساب كمّ زمني موزون

CREATE TABLE t (response_time UInt32, weight UInt32) ENGINE = Memory;
INSERT INTO t VALUES (68, 1), (104, 2), (112, 3), (126, 2), (138, 1), (162, 1);

SELECT quantileTimingWeighted(response_time, weight) FROM t;
┌─quantileTimingWeighted(response_time, weight)─┐
│                                           112 │
└───────────────────────────────────────────────┘
Navigation