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:
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!!