Funzione AVG - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzione AVG

La funzione AVG restituisce la media (media aritmetica) dei valori di espressione di input. La funzione AVG funziona con i valori numerici e ignora i valori NULL.

Sintassi

AVG ( [ DISTINCT | ALL ] expression )

Argomenti

expression

L'espressione o colonna di destinazione su cui viene eseguita la funzione. L'espressione è uno dei seguenti tipi di dati:

  • SMALLINT

  • INTEGER

  • BIGINT

  • NUMERIC

  • DECIMAL

  • REAL

  • DOUBLE PRECISON

  • SUPER

DISTINCT | ALL

Con l'argomento DISTINCT, la funzione elimina tutti i valori duplicati dall'espressione specificata prima di calcolare la media. Con l'argomento ALL, la funzione mantiene tutti i valori duplicati dall'espressione per calcolare la media. ALL è il valore predefinito.

Tipi di dati

I tipi di argomenti supportati dalla funzione AVG sono SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, DOUBLE PRECISION e SUPER.

I tipi di restituzione supportati dalla funzione AVG sono:

  • BIGINT per qualsiasi argomento di tipo integer

  • DOUBLE PRECISION per un argomento del numero in virgola mobile

  • Restituisce lo stesso tipo di dati come espressione per qualsiasi altro tipo di argomento.

La precisione di default per un risultato della funzione AVG con un argomento NUMERIC o DECIMAL è 38. Il ridimensionamento del risultato coincide con il ridimensionamento dell'argomento. Ad esempio, un AVG di una colonna DEC(5,2) restituisce un tipo di dati DEC(38,2).

Esempi

Trovare la quantità media venduta per transazione dalla tabella SALES:

select avg(qtysold)from sales; avg ----- 2 (1 row)

Trovare il prezzo totale medio elencato per tutti gli elenchi:

select avg(numtickets*priceperticket) as avg_total_price from listing; avg_total_price ----------------- 3034.41 (1 row)

Trovare il prezzo medio pagato, raggruppato per mese in ordine decrescente:

select avg(pricepaid) as avg_price, month from sales, date where sales.dateid = date.dateid group by month order by avg_price desc; avg_price | month -----------+------- 659.34 | MAR 655.06 | APR 645.82 | JAN 643.10 | MAY 642.72 | JUN 642.37 | SEP 640.72 | OCT 640.57 | DEC 635.34 | JUL 635.24 | FEB 634.24 | NOV 632.78 | AUG (12 rows)