مشاركة عبر


histogram_numeric الدالة التجميعية

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime 10,2 والإحدث

يحسب مدرجا تكراريا على expr استخدام numBins سلال.

بناء الجملة

histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]

الوسيطات

  • expr: تعبير رقمي أو TIMESTAMPDATEتستخدمه INTERVAL الدالة وتحسب المدرج التكراري عليه.
  • numBinsINTEGER: قيمة حرفية يجب أن تكون أكبر من 1، مع تحديد عدد الخانات لحساب المدرج التكراري.
  • cond: تعبير اختياري BOOLEAN يقوم بتصفية الصفوف للتجميع.

المرتجعات

القيمة المرجعة هي من ARRAY STRUCTS مع الحقول x وتمثل y مراكز سلال المدرج التكراري. نوع x هو نفس نوع expr، ونوع y هو DOUBLE. زيادة قيمة numBins تحسين تقريب المدرج التكراري، مما يجعلها أكثر دقة. ومع ذلك، فإنه يمكن أن يقدم البيانات الاصطناعية حول القيم الخارجية. عادة ما تكون 20-40 سلة فعالة للم مدرجات تكرارية، على الرغم من أن مجموعات البيانات المنحرفة أو الأصغر قد تتطلب المزيد من الخانات. لاحظ أن هذه الدالة تنشئ مدرجا تكراريا بعرض سلة غير موحد. لا تقدم أي ضمانات من حيث متوسط الخطأ التربيعي للمربع التكراري، ولكن في الممارسة العملية قابلة للمقارنة مع المدرجات التكرارية التي تنتجها حزم الحوسبة الأخرى.

يجعل التحديد DISTINCT الدالة تعمل فقط على مجموعة فريدة من expr القيم.

الأمثلة

> SELECT histogram_numeric(col, 5)
    FROM VALUES (0), (1), (2), (10) AS tab(col);
 [{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (0L), (1L), (2L), (10L) AS tab(col);
 [{"x":0,"y":1.0},{"x":1,"y":1.0},{"x":2,"y":1.0},{"x":10,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (0F), (1F), (2F), (10F) AS tab(col);
 [{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (0D), (1D), (2D), (10D) AS tab(col);
 [{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (INTERVAL 0 YEAR), (INTERVAL 1 YEAR), (INTERVAL 2 YEAR),
    (INTERVAL 3 YEAR) AS tab(col);
 [{"x":0-0,"y":1.0},{"x":1-0,"y":1.0},{"x":2-0,"y":1.0},{"x":3-0,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (INTERVAL 0 DAY), (INTERVAL 1 DAY), (INTERVAL 2 DAY),
    (INTERVAL 3 DAY) AS tab(col);
  [{"x":0 00:00:00.000000000,"y":1.0},{"x":1 00:00:00.000000000,"y":1.0},{"x":2 00:00:00.000000000,"y":1.0},{"x":3 00:00:00.000000000,"y":1.0}]

> SELECT histogram_numeric(col, 5)
    FROM VALUES (TIMESTAMP '2020-01-01'), (TIMESTAMP'2020-02-01'),
    (TIMESTAMP'2020-03-01'), (TIMESTAMP'2020-10-01') AS tab(col)
  [{"x":2020-01-01 00:00:00,"y":1.0},{"x":2020-02-01 00:00:00,"y":1.0},{"x":2020-03-01 00:00:00,"y":1.0},{"x":2020-10-01 00:00:00,"y":1.0}]