Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Cláusula GROUP BY do MySQL

A cláusula `GROUP BY` no MySQL é usada para organizar dados idênticos em grupos. É comumente empregado com funções de agregação (como `COUNT`, `SUM`, `AVG`) para realizar cálculos em cada grupo de dados.

Uso

A cláusula `GROUP BY` é usada quando você precisa agregar dados e agrupar linhas que tenham os mesmos valores nas colunas especificadas. Ele segue as cláusulas `FROM` e `WHERE` em uma consulta SQL.


SELECT column1, aggregate_function(column2)
FROM table_name
[WHERE condition]
GROUP BY column1;

Nessa sintaxe, `GROUP BY column1` organiza o conjunto de resultados em grupos com base nos valores da `coluna1`.

Exemplos

1. Agrupamento básico


SELECT department, COUNT(*)
FROM employees
GROUP BY department;

Este exemplo conta o número de funcionários em cada departamento, agrupando os dados pela coluna `department`.

2. Agrupamento com várias colunas


SELECT department, job_title, AVG(salary)
FROM employees
GROUP BY department, job_title;

Aqui, o salário médio é calculado para cada cargo dentro de cada departamento, agrupando os dados por `department` e `job_title`.

3. Usando GROUP BY com HAVING


SELECT department, SUM(sales)
FROM sales_data
GROUP BY department
HAVING SUM(sales) > 10000;

Este exemplo agrupa os dados por `department` e, em seguida, filtra os grupos usando `HAVING`, exibindo apenas os departamentos com vendas totais superiores a 10.000.

Dicas e práticas recomendadas

  • Garanta a consistência da coluna. Inclua apenas colunas não agregadas na cláusula `GROUP BY` para evitar erros. Se colunas não agregadas forem incluídas na cláusula `SELECT` sem serem especificadas na cláusula `GROUP BY`, você poderá obter resultados ou erros inesperados.
  • Use funções agregadas. Combine `GROUP BY` com funções de agregação para resumir os dados de forma eficaz.
  • Ordene os grupos de forma lógica. Use `ORDER BY` após `GROUP BY` para classificar os resultados e melhorar a legibilidade.
  • Filtrar grupos com HAVING. Utilize `HAVING` em vez de `WHERE` para filtrar os resultados com base em cálculos agregados. Lembre-se de que o `WHERE` filtra as linhas antes do agrupamento, enquanto o `HAVING` filtra os grupos após a agregação.
  • Considere o desempenho. Ao usar `GROUP BY` em grandes conjuntos de dados, você deve estar ciente do possível impacto no tempo de execução da consulta. Considere estratégias de otimização, como a indexação, para melhorar o desempenho.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça