Funzione AVG SQL Server

Funzione AVG SQL Server

Obiettivo: questo tutorial mira ad aiutarti a capire come calcolare la media di un determinato set di valori in SQL Server utilizzando la funzione AVG ().

Funzione AVG SQL Server

La funzione Avg () è una funzione aggregata che consente di determinare la media per un determinato set di valori. La funzione ignorerà i valori null nell'input.

Di seguito mostra la sintassi della funzione AVG ():

Avg ([all | distinto] espressione)
[Over ([partitition_by_clause] order_by_clause)]

Argomenti della funzione

La funzione supporta i seguenti argomenti:

  1. TUTTO - La parola chiave All applica la funzione AVG () a tutti i valori nel set fornito. Questa è l'opzione predefinita per la funzione.
  2. Distinto - Questa parola chiave consente di applicare la funzione solo ai valori distinti del set dato. Questa opzione ignorerà tutti i valori duplicati indipendentemente dal numero di volte in cui il valore si verifica nel set.
  3. espressione - Questo definisce un insieme di valori o un'espressione che restituisce un valore numerico.
  4. Over Partition_by | order_by_clause - Ciò specifica la condizione utilizzata per dividere l'espressione in varie partizioni in cui viene applicata la funzione. L'ordine_by_clause definisce l'ordine per i valori nelle partizioni risultanti.

Il valore di restituzione della funzione dipenderà dal tipo di dati di input. La tabella seguente mostra il tipo di output corrispondente per un determinato tipo di input.

Tipo di input Tipo risultante
tinyint int
int int
piccolo int
bigint bigint
galleggiante e reale galleggiante
denaro/piccolomoney soldi
decimale decimale

Esempio di utilizzo

Diamo un'occhiata ad un utilizzo di esempio per la funzione AVG ().

Esempio 1 - Usando Avg () con distinto

Il seguente esempio crea una tabella di esempio e inserisce alcuni valori casuali.

Drop database se esiste Sample_DB;
Crea database sample_db;
Usa sample_db;
Crea tabella tbl (
casuale int,
);
inserire in TBL (casuale)
valori (101), (69), (62), (99), (45), (80), (66), (61), (46), (28), (66);

Nella seguente query, utilizziamo la funzione AVG () per determinare la media per i valori distinti nella colonna come mostrato:

Seleziona AVG (distinto casuale) come media da TBL;

In questo caso, la funzione calcola la media per i valori univoci nella colonna. Il valore risultante è come mostrato:

Esempio 2 - Utilizzo della funzione Avg () con tutti

Per consentire alla funzione di includere valori duplicati, possiamo utilizzare la parola chiave come mostrato:

Seleziona AVG (tutto casuale) come media da TBL;

In questo caso, la funzione considera tutti gli undici valori anziché 10 come precedentemente applicato.

NOTA: A seconda del tipo risultante, il valore può essere arrotondato, rendendo l'uso di tutto e distinto trascurabile.

Per esempio:

101+69+62+99+45+80+66+61+46+28+66/11 = 65.7272727273
101+69+62+99+45+80+66+61+46+28/10 = 65.7

Come puoi vedere dall'output sopra, la differenza viene mostrata principalmente quando il tipo risultante è un valore di punto galleggiante.

Utilizzo della funzione AVG con il gruppo per clausola

Considera la tabella fornita di seguito:

Possiamo calcolare il prezzo medio per ciascun prodotto da parte di un determinato produttore utilizzando la funzione Group by Clause e Avg () come illustrato di seguito:

Seleziona il produttore, AVG (prezzo) come "prezzo medio", somma (quantità) come "in magazzino"
dai prodotti
gruppo per produttore;

La query sopra dovrebbe organizzare le righe in varie partizioni in base al produttore. Calcoliamo quindi il prezzo medio per tutti i prodotti in ogni partizione.

La tabella risultante è come mostrata:

Conclusione

In questo post, abbiamo coperto i fondamenti di lavorare con la funzione AVG in SQL Server per determinare la media per un determinato set di valori.

Grazie per aver letto!!