mean toplama işlevi

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Bir grubun değerlerinden hesaplanan ortalamayı döndürür. Bu işlev, toplama işlevinin eş anlamlısıdıravg.

Sözdizimi

mean ( [ALL | DISTINCT] expr ) [FILTER ( WHERE cond ) ]

Bu işlev, pencere fonksiyonu olarak OVER yan tümcesi kullanılarak da çağrılabilir.

Argümanlar

  • expr: Sayısal olarak değerlendirilen ifade.
  • cond: Toplama için kullanılan satırları filtrelemek amacıyla isteğe bağlı bir boolean ifadesi.

İadeler

Sonuç türü bağımsız değişkenler için olarak hesaplanır:

  • DECIMAL(p, s): Sonuç türü bir DECIMAL(p + 4, s + 4). Maksimum hassasiyete ulaşılırsa DECIMAL için, önemli basamakların kaybını önlemek amacıyla ölçekteki artış sınırlıdır.
  • yıl-ay aralığı: Sonuç bir INTERVAL YEAR TO MONTHolur.
  • Gün içi zaman aralığı: Sonuç bir INTERVAL DAY TO SECOND olur.
  • Diğer tüm durumlarda sonuç bir DOUBLEolur.

Gruptaki null değerler göz ardı edilir. Bir grup boşsa veya yalnızca null değerlerden oluşuyorsa sonuç NULL olur.

Belirtilirse DISTINCT , yinelemeler kaldırıldıktan sonra ortalama hesaplanır.

Uyarı

Databricks Runtime'da spark.sql.ansi.enabledfalse ise, hata yerine NULL döndüren bir taşma oluşur.

Yaygın hata koşulları

Örnekler

> SELECT mean(col) FROM VALUES (1), (2), (3) AS tab(col);
 2.0

> SELECT mean(DISTINCT col) FROM VALUES (1), (1), (2), (NULL) AS tab(col);
 1.5

> SELECT mean(col) FROM VALUES (1), (2), (NULL) AS tab(col);
 1.5

> SELECT mean(c1) FROM VALUES(5e307::DOUBLE), (5e307::DOUBLE) AS tab(c1);
  Error: ARITHMETIC_OVERFLOW