quantileInterpolatedWeighted
أُضيف في: v23.1.0
يحسب الكمّ لتسلسل من البيانات الرقمية باستخدام الاستيفاء الخطي، مع مراعاة وزن كل عنصر.
للحصول على القيمة المستوفاة، تُجمَع جميع القيم المُمرَّرة في مصفوفة، ثم تُرتَّب وفقًا لأوزانها المقابلة. بعد ذلك، يُجرى استيفاء الكمّ باستخدام طريقة المئين الموزون من خلال بناء توزيع تراكمي استنادًا إلى الأوزان، ثم يُطبَّق استيفاء خطي باستخدام الأوزان والقيم لحساب الكمّات.
عند استخدام عدة دوال quantile* بمستويات مختلفة في استعلام، لا تُدمَج الحالات الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يعمل به).
في هذه الحالة، استخدم الدالة quantiles.
البنية
quantileInterpolatedWeighted(level)(expr, weight)الأسماء البديلة: medianInterpolatedWeighted
المعلمات
level— اختياري. مستوى الكمّ. عدد ثابت بفاصلة عائمة من 0 إلى 1. نوصي باستخدام قيمةlevelضمن النطاق[0.01, 0.99]. القيمة الافتراضية: 0.5. عندlevel=0.5تحسب الدالة الوسيط.Float*
الوسيطات
expr— تعبير على قيم العمود ينتج أنواع بيانات رقمية، أوDateأوDateTimeأوDateTime64.(U)Int*أوInt128أوUInt128أوInt256أوUInt256أوFloat*أوDecimal*أوDateأوDateTimeأوDateTime64weight— عمود يحتوي على أوزان عناصر التسلسل. الوزن هو عدد مرات تكرار القيمة.UInt*
القيمة المعادة
الكمّ عند المستوى المحدد. بالنسبة إلى أنواع البيانات الرقمية، يتطابق تنسيق الإخراج مع تنسيق الإدخال. (U)Int* أو Int128 أو UInt128 أو Int256 أو UInt256 أو Float* أو Decimal* أو Date أو DateTime أو DateTime64
أمثلة
حساب الكمّ الموزون بالاستيفاء
CREATE TABLE t (
n Int32,
val UInt32
) ENGINE = Memory;
INSERT INTO t VALUES (0, 3), (1, 2), (2, 1), (5, 4);
SELECT quantileInterpolatedWeighted(n, val) FROM t;┌─quantileInterpolatedWeighted(n, val)─┐
│ 1 │
└──────────────────────────────────────┘انظر أيضًا