Funções agregadas MySQL

Resumo : neste tutorial, você aprenderá sobre as funções agregadas do MySQL, incluindo AVG, COUNT, eSUMMAXMIN.

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 DISTINCTse desejar calcular com base em valores distintos ou ALLcaso 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 BYclá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 BYcláusula:

Função agregada MySQL

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 productse orderdetailsdo banco de dados de exemplo para demonstração:

tabelas de detalhes do pedido de produtos

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 AVGfunção para calcular o preço médio de compra de todos os produtos da productstabela usando a seguinte consulta:

SELECT 
    AVG(buyPrice) average_buy_price
FROM 
    products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Função agregada MySQL - exemplo AVG

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 )

Experimente

Função agregada MySQL - AVG com exemplo GROUP BY

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 productstabela conforme mostrado na consulta a seguir:

SELECT 
    COUNT(*) AS total
FROM 
    products;Linguagem de código:  PHP  ( php )

Experimente

Função agregada MySQL - exemplo COUNT

A instrução a seguir usa a COUNT()função com a GROUP BYclá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 )

Experimente

Função agregada MySQL - exemplo COUNT com GROUP BY

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 BYclá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 )

Experimente

Função agregada MySQL - exemplo SUM

Para ver o resultado com mais detalhes, você pode unir a orderdetailstabela à productstabela 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 )

Experimente

Função agregada MySQL - exemplo SUM com JOIN

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 productstabela, conforme mostrado na consulta a seguir:

SELECT 
     MAX(buyPrice) highest_price
FROM 
     products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Função agregada MySQL - exemplo MAX

A instrução a seguir usa a MAX()função com a GROUP BYclá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 )

Experimente

Função agregada MySQL - MAX com exemplo GROUP BY

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

SELECT 
    MIN(buyPrice) lowest_price
FROM 
    products;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Função agregada MySQL - exemplo MIN

O exemplo a seguir usa a MIN()função com a GROUP BYclá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 )

Experimente

Função agregada MySQL - MIN com exemplo GROUP BY

O exemplo da função GROUP_CONCAT()

O GROUP_CONCAT()concatena um conjunto de strings e retorna a string concatenada. Veja o seguinte employeese customersas 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 )

Experimente

Função agregada MySQL - exemplo GROUP_CONCAT

Neste tutorial, você aprendeu como usar as funções agregadas do MySQL mais comumente usadas.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *