Objetivo: Este tutorial visa ajudá -lo a entender como calcular a média de um determinado conjunto de valores no SQL Server usando a função AVG ().
Função AVG do servidor SQL
A função AVG () é uma função agregada que permite determinar a média para um determinado conjunto de valores. A função ignorará os valores nulos na entrada.
A seguir, mostra a sintaxe da função AVG ():
AVG ([All | Distinct] Expressão)
[Over ([partition_by_clause] order_by_clause)]
Argumentos de função
A função suporta os seguintes argumentos:
O valor de retorno da função dependerá do tipo de dados de entrada. A tabela a seguir mostra o tipo de saída correspondente para um determinado tipo de entrada.
Tipo de entrada | Tipo resultante |
tinyint | int |
int | int |
smallint | int |
bigint | bigint |
flutuar e real | flutuador |
Money/SmallMoney | dinheiro |
decimal | decimal |
Exemplo de uso
Vejamos algum exemplo de uso da função AVG ().
Exemplo 1 - usando o avg () com distinto
O exemplo a seguir cria uma tabela de amostra e insere alguns valores aleatórios.
soltar banco de dados se existir sample_db;
Crie o Database Sample_db;
use sample_db;
Crie Tabela TBL (
Random Int,
);
Insira no TBL (aleatório)
valores (101), (69), (62), (99), (45), (80), (66), (61), (46), (28), (66);
Na consulta a seguir, usamos a função AVG () para determinar a média para os valores distintos na coluna como mostrado:
selecione AVG (aleatório distinto) como média de TBL;
Nesse caso, a função calcula a média para valores únicos na coluna. O valor resultante é como mostrado:
Exemplo 2 - usando a função AVG () com todos
Para permitir que a função inclua valores duplicados, podemos usar todas as palavras -chave como mostrado:
Selecione AVG (tudo aleatório) como média em TBL;
Nesse caso, a função considera todos os onze valores em vez de 10, conforme aplicado anteriormente.
OBSERVAÇÃO: Dependendo do tipo resultante, o valor pode ser arredondado, fazendo o uso de todos e insignificantes distintos.
Por exemplo:
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
Como você pode ver na saída acima, a diferença é mostrada principalmente quando o tipo resultante é um valor de ponto flutuante.
Usando a função AVG com o grupo por cláusula
Considere a tabela fornecida abaixo:
Podemos calcular o preço médio de cada produto por um determinado fabricante usando o grupo por cláusula e a função AVG (), conforme ilustrado abaixo:
Selecione o fabricante, AVG (preço) como 'preço médio', soma (quantidade) como 'em estoque'
de produtos
grupo por fabricante;
A consulta acima deve organizar as linhas em várias partições baseadas no fabricante. Em seguida, calculamos o preço médio para todos os produtos em cada partição.
A tabela resultante é como mostrado:
Conclusão
Neste post, abordamos os fundamentos de trabalhar com a função AVG no SQL Server para determinar a média para um determinado conjunto de valores.
Obrigado pela leitura!!