Resumo : neste tutorial, você aprenderá sobre as funções agregadas do MySQL, incluindo AVG
, COUNT
, eSUM
MAX
MIN.
Introdução às funções agregadas do MySQL
Uma função agregada executa um cálculo em vários valores e retorna um único valor.
Por exemplo, você pode usar a AVG()
função agregada que pega vários números e retorna o valor médio dos números.
O seguinte ilustra a sintaxe de uma função agregada:
function_name(DISTINCT | ALL expression)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
- Primeiro, especifique o nome da função agregada, por exemplo,
AVG()
. Consulte a lista de funções agregadas na seção a seguir. - Em segundo lugar, use
DISTINCT
se desejar calcular com base em valores distintos ouALL
caso queira calcular todos os valores, incluindo duplicatas. O padrão éALL
. - Terceiro, especifique uma expressão que pode ser uma coluna ou uma expressão que envolva colunas e operadores aritméticos.
As funções agregadas são frequentemente usadas com a GROUP BY
cláusula para calcular um valor agregado para cada grupo, por exemplo, o valor médio do grupo ou a soma dos valores em cada grupo.
A imagem a seguir ilustra que a SUM()
função agregada é usada em conjunto com uma GROUP BY
cláusula:
MySQL suporta as seguintes funções agregadas:
Função agregada | Descrição |
---|---|
MÉDIA() | Retorna a soma de todos os valores não NULL em um conjunto. |
BIT_AND() | Execute um AND bit a bit de valores em uma coluna de uma tabela. |
BIT_OR() | Execute um OR bit a bit de valores em uma coluna de uma tabela. |
BIT_XOR() | Execute um XOR bit a bit de valores em uma coluna de uma tabela. |
CONTAR() | Retorna o número de linhas em um grupo, incluindo linhas com valores NULL. |
CONTAGEM(DISTINTA) | Conte o número de valores exclusivos de uma coluna em uma tabela. |
CONTAGEM(SE) | Conte o número de valores que atendem a uma condição especificada. |
GRUPO_CONCAT() | Retorna uma string concatenada. |
JSON_ARRAYAGG() | Retorne o conjunto de resultados como uma única matriz JSON. |
JSON_OBJECTAGG() | Retorne o conjunto de resultados como um único objeto JSON. |
MÁX() | Retorna o valor mais alto (máximo) em um conjunto de valores não NULL. |
MÍNIMO() | Retorna o valor mais baixo (mínimo) em um conjunto de valores não NULL. |
DESVPAD() | Retorna a soma de todos os valores não NULL em um conjunto. |
STDDEV_POP() | Retorne o desvio padrão da população. |
STDDEV_SAMP() | Retorne o desvio padrão da amostra. |
SOMA() | Retorna a soma de todos os valores não NULL de um conjunto. |
SOMA(SE) | Execute a soma condicional usando as funções SUM e IF. |
VAR_POP() | Retorna a soma de todos os valores não NULL em um conjunto. |
VAR_SAMP() | Retorne a variação amostral dos valores em uma coluna de uma tabela. |
VARIÂNCIA() | Retorna a variação padrão populacional de todos os valores não NULOS em um conjunto. |
Exemplos de funções agregadas do MySQL
Usaremos as tabelas products
e orderdetails
do banco de dados de exemplo para demonstração:
Os exemplos da função AVG()
A AVG()
função calcula o valor médio de um conjunto de valores. Ignora NULL no cálculo.
AVG(expression)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, você pode usar a AVG
função para calcular o preço médio de compra de todos os produtos da products
tabela usando a seguinte consulta:
SELECT
AVG(buyPrice) average_buy_price
FROM
products;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir usa a AVG()
função para calcular o preço médio de compra para cada linha de produto:
SELECT
productLine,
AVG(buyPrice)
FROM
products
GROUP BY productLine
ORDER BY productLine;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os exemplos da função COUNT()
A COUNT()
função retorna o número de valores em um conjunto.
Por exemplo, você pode usar a COUNT()
função para obter o número de produtos na products
tabela conforme mostrado na consulta a seguir:
SELECT
COUNT(*) AS total
FROM
products;
Linguagem de código: PHP ( php )
A instrução a seguir usa a COUNT()
função com a GROUP BY
cláusula para obter o número de produtos para cada linha de produtos:
SELECT
productLine,
COUNT(*)
FROM
products
GROUP BY productLine
ORDER BY productLine;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os exemplos da função SUM()
A SUM()
função retorna a soma dos valores em um conjunto. A SUM()
função ignora NULL
. Se nenhuma linha correspondente for encontrada, a SUM()
função retornará NULL.
Para obter o valor total do pedido de cada produto, você pode usar a SUM()
função em conjunto com a GROUP BY
cláusula a seguir:
SELECT
productCode,
SUM(priceEach * quantityOrdered) total
FROM
orderDetails
GROUP BY productCode
ORDER BY total DESC;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Para ver o resultado com mais detalhes, você pode unir a orderdetails
tabela à products
tabela conforme mostrado na consulta a seguir:
SELECT
productCode,
productName,
SUM(priceEach * quantityOrdered) total
FROM
orderDetails
INNER JOIN
products USING (productCode)
GROUP BY productCode
ORDER BY total;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os exemplos da função MAX()
A MAX()
função retorna o valor máximo em um conjunto.
MAX(expression)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, você pode usar a MAX()
função para obter o preço de compra mais alto da products
tabela, conforme mostrado na consulta a seguir:
SELECT
MAX(buyPrice) highest_price
FROM
products;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução a seguir usa a MAX()
função com a GROUP BY
cláusula para obter o preço mais alto por linha de produto:
SELECT
productLine, MAX(buyPrice)
FROM
products
GROUP BY productLine
ORDER BY MAX(buyPrice) DESC;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Os exemplos da função MIN()
A MIN()
função retorna o valor mínimo em um conjunto de valores.
MIN(expression)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, a consulta a seguir usa a MIN()
função para encontrar o preço mais baixo da products
tabela:
SELECT
MIN(buyPrice) lowest_price
FROM
products;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo a seguir usa a MIN()
função com a GROUP BY
cláusula para obter o preço mais baixo por linha de produto:
SELECT
productLine,
MIN(buyPrice)
FROM
products
GROUP BY productLine
ORDER BY MIN(buyPrice);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O exemplo da função GROUP_CONCAT()
O GROUP_CONCAT()
concatena um conjunto de strings e retorna a string concatenada. Veja o seguinte employees
e customers
as tabelas:
A instrução a seguir usa a GROUP_CONCAT()
função para retornar a equipe de vendas e a lista de clientes pelos quais cada equipe de vendas é responsável:
SELECT
firstName,
lastName,
GROUP_CONCAT(
DISTINCT customername
ORDER BY customerName) customers
FROM
employees
INNER JOIN customers
ON customers.salesRepEmployeeNumber = employeeNumber
GROUP BY employeeNumber
ORDER BY firstName , lastname;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar as funções agregadas do MySQL mais comumente usadas.