MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Função AVG() no MariaDB


No MariaDB, o AVG() A função retorna o valor médio da expressão fornecida.

O DISTINCT A opção pode ser usada para retornar a média dos valores distintos (ou seja, remover duplicatas antes de calcular a média).

NULL valores são ignorados.

Dados de amostra


Suponha que temos uma tabela com os seguintes dados:
SELECT 
    VendorId,
    ProductName,
    ProductPrice 
FROM Products;

Resultado:
+----------+---------------------------------+--------------+
| VendorId | ProductName                     | ProductPrice |
+----------+---------------------------------+--------------+
|     1001 | Left handed screwdriver         |        25.99 |
|     1001 | Right handed screwdriver        |        25.99 |
|     1001 | Long Weight (blue)              |        14.75 |
|     1001 | Long Weight (green)             |        11.99 |
|     1002 | Sledge Hammer                   |        33.49 |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Exemplo


Podemos usar a seguinte consulta para obter a média de todos os preços.
SELECT AVG(ProductPrice)
FROM Products;

Resultado:
52.898750

Nesse caso, as informações de preço são armazenadas no ProductPrice coluna, e então passamos isso como um argumento para o AVG() função, que então calculou a média e retornou o resultado.

Resultados filtrados


O AVG() A função opera nas linhas retornadas pela consulta. Portanto, se você filtrar os resultados, o resultado de AVG() vai refletir isso.
SELECT AVG(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Resultado:
19.680000

Nesse caso, 19,680000 é o preço médio de todos os produtos oferecidos pelo fornecedor especificado.

O DISTINCT Palavra-chave


Você pode usar o DISTINCT palavra-chave com AVG() para calcular apenas valores distintos. Ou seja, se houver valores duplicados, eles serão tratados como um valor.

Exemplo:
SELECT 
    AVG(ProductPrice) AS "All",
    AVG(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Resultado:
+-----------+-----------+
| All       | Distinct  |
+-----------+-----------+
| 52.898750 | 56.742857 |
+-----------+-----------+

Nesse caso, dois itens compartilham o mesmo preço (a chave de fenda para canhotos e a chave de fenda para destros custam 25,99). Portanto, o AVG() função, quando usado com o DISTINCT palavra-chave, trata ambos os valores como um e calcula seu resultado de acordo.

Funções da janela


O AVG() pode ser usada em funções de janela. Veja SQL AVG() para Iniciantes para um exemplo disso.