Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:
 Databricks SQL 
 Databricks Runtime 11.3 LTS och senare
Returnerar medelvärdet som beräknas från värden för en grupp. Om det finns ett överflöde returneras NULL.
Syntax
try_avg( [ALL | DISTINCT] expr) [FILTER ( WHERE cond ) ]
Den här funktionen kan också anropas som en -fönsterfunktion med hjälp av OVER-satsen.
Argument
- 
              
expr: Ett uttryck som returnerar ett numeriskt värde eller ett intervallvärde. - 
              
cond: Ett valfritt booleskt uttryck som filtrerar de rader som används för aggregering. 
Returer
Resultattypen beräknas enligt argumenten:
- 
              
DECIMAL(p, s): Resultattypen är enDECIMAL(p + 4, s + 4). Om den maximala precisionen för DECIMAL uppnås begränsas skalningsökningen för att undvika förlust av signifikanta siffror. - årsmånadsintervall: Resultatet är en 
INTERVAL YEAR TO MONTH. - dagtidsintervall: Resultatet är en 
INTERVAL YEAR TO SECOND. - I alla andra fall är resultatet en 
DOUBLE. 
Null-värden i gruppen ignoreras. Om en grupp är tom eller bara består av null-värden blir resultatet NULL.
Om DISTINCT anges beräknas medelvärdet när dubbletter har tagits bort.
Om du vill skapa ett fel i stället för NULL vid ett överflöde använder du avg.
Exempel
> SELECT try_avg(col) FROM VALUES (1), (2), (3) AS tab(col);
 2.0
> SELECT try_avg(DISTINCT col) FROM VALUES (1), (1), (2) AS tab(col);
 1.5
> SELECT try_avg(col) FROM VALUES (1), (2), (NULL) AS tab(col);
 1.5
> SELECT try_avg(col) FROM VALUES (INTERVAL '1' YEAR), (INTERVAL '2' YEAR) AS tab(col);
 1-6
-- Overflow results in NULL for try_avg()
> SELECT try_avg(col) FROM VALUES (5e37::DECIMAL(38, 0)), (5e37::DECIMAL(38, 0)) AS tab(col);
 NULL
-- Overflow causes error for avg() in ANSI mode.
> SELECT avg(col) FROM VALUES (5e37::DECIMAL(38, 0)), (5e37::DECIMAL(38, 0)) AS tab(col);
 Error: CANNOT_CHANGE_DECIMAL_PRECISION