quantiles
ظهرت في: v1.1.0
تحسب عدة quantiles تقريبية لتسلسل بيانات رقمية عند مستويات مختلفة في الوقت نفسه.
تستخدم هذه الدالة أخذ العينات بالخزان بحجم خزان يصل إلى 8192، مع مولّد أرقام عشوائية لأخذ العينات. النتيجة غير حتمية.
يكون استخدام quantiles أكثر كفاءة من استدعاء عدة دوال quantile منفصلة عندما تحتاج إلى عدة قيم quantiles، إذ تُحسب جميع quantiles في مرور واحد على البيانات.
الصيغة
quantiles(level1, level2, ...)(expr)المعاملات
level— مستويات quantiles. عدد ثابت واحد أو أكثر من الأعداد ذات الفاصلة العائمة من 0 إلى 1. نوصي باستخدام قيمlevelضمن النطاق[0.01, 0.99].Float*
الوسيطات
expr— تعبير على قيم العمود ينتج عنه أنواع بيانات رقمية، أوDateأوDateTimeأوDateTime64.(U)Int*أوInt128أوUInt128أوInt256أوUInt256أوFloat*أوDecimal*أوDateأوDateTimeأوDateTime64
القيمة المُعادة
مصفوفة من quantiles التقريبية للمستويات المحددة، وبالترتيب نفسه الذي حُدِّدت به هذه المستويات. تُنتِج الوسيطات الرقمية Float64، بينما تحتفظ وسيطات Decimal وDate وDateTime وDateTime64 بتنسيق الإدخال الخاص بها. Array(Float64) أو Array(Decimal*) أو Array(Date) أو Array(DateTime) أو Array(DateTime64)
أمثلة
حساب عدة quantiles بكفاءة
CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
SELECT quantiles(0.25, 0.5, 0.75, 0.9)(val) FROM t;┌─quantiles(0.25, 0.5, 0.75, 0.9)(val)─┐
│ [2.5,5,7.5,9] │
└──────────────────────────────────────┘