quantileExactWeighted
أُضيف في: v1.1.0
يحسب كَمّ لتسلسل بيانات رقمية بدقة، مع مراعاة وزن كل عنصر.
للحصول على القيمة الدقيقة، تُجمَع جميع القيم المُمرَّرة في مصفوفة، ثم تُرتَّب جزئيًا.
وتُحتسَب كل قيمة بحسب وزنها، كما لو كانت موجودة weight مرة.
تُستخدَم خوارزمية تعتمد على جدول تجزئة.
ولذلك، إذا كانت القيم المُمرَّرة تتكرر كثيرًا، فإن هذه الدالة تستهلك RAM أقل من quantileExact.
يمكنك استخدام هذه الدالة بدلًا من quantileExact وتحديد الوزن على أنه 1.
عند استخدام عدة دوال quantile* بمستويات مختلفة في استعلام واحد، لا تُدمَج الحالات الداخلية (أي إن الاستعلام يعمل بكفاءة أقل مما يمكن أن يكون عليه).
في هذه الحالة، استخدم الدالة quantiles.
الصياغة
quantileExactWeighted(level)(expr, weight)الأسماء البديلة: medianExactWeighted
المعلمات
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 the sample data
INSERT INTO t VALUES
(0, 3),
(1, 2),
(2, 1),
(5, 4);
SELECT quantileExactWeighted(n, val) FROM t;┌─quantileExactWeighted(n, val)─┐
│ 1 │
└───────────────────────────────┘انظر أيضًا