Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantilesTDigest

quantilesTDigest

أُضيفت في: v1.1.0

تحسب عدة كوانتايل تقريبية لتسلسل بيانات رقمية عند مستويات مختلفة في الوقت نفسه باستخدام خوارزمية t-digest.

تعادل هذه الدالة quantileTDigest، لكنها تتيح حساب عدة مستويات كوانتايل في تمريرة واحدة، ما يجعلها أكثر كفاءة من استدعاء دوال الكوانتايل الفردية.

استهلاك الذاكرة هو log(n)، حيث إن n هو عدد القيم. وتعتمد النتيجة على ترتيب تنفيذ الاستعلام، لذا فهي غير حتمية.

أداء هذه الدالة أقل من أداء quantiles أو quantilesTiming. ومن حيث نسبة حجم State إلى الدقة، فهذه الدالة أفضل بكثير من quantiles.

الصياغة

quantilesTDigest(level1, level2, ...)(expr)

المعلمات

  • level — مستويات الكوانتايل. رقم ثابت واحد أو أكثر من الأعداد ذات الفاصلة العائمة من 0 إلى 1. نوصي باستخدام قيم level ضمن النطاق [0.01, 0.99]. Float*

الوسائط

  • expr — تعبير على قيم العمود ينتج أنواع بيانات رقمية أو Date أو DateTime. (U)Int* أو Float* أو Date أو DateTime

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

مصفوفة من الكوانتايل التقريبية للمستويات المحددة، وبالترتيب نفسه الذي حُدِّدت به هذه المستويات. بالنسبة إلى مُدخلات Date وDateTime، يطابق تنسيق الإخراج تنسيق الإدخال. Array(Float32) أو Array(Date) أو Array(DateTime)

أمثلة

حساب عدة كوانتايل باستخدام t-digest

SELECT quantilesTDigest(0.25, 0.5, 0.75)(number) FROM numbers(100);
┌─quantilesTDigest(0.25, 0.5, 0.75)(number)─┐
│ [24,49,74]                                │
└───────────────────────────────────────────┘
Navigation