logo

SQL GRUPO POR

A cláusula SQL GROUP BY é usada para organizar dados idênticos em grupos com base em uma ou mais colunas. É comumente usado com funções agregadas como COUNT() SUM() AVG() MAX() e MIN() para realizar cálculos em cada grupo de dados.

frutas_imagem' title=

Exemplo: Primeiro vamos criar um banco de dados SQL de demonstração e uma tabela na qual usaremos o comando GROUP BY.

Funcionários' loading='lazy' title=

Consulta:



SELECT Department SUM(Salary) AS TotalSalary FROM Employees GROUP BY Department;

Saída:

Grupo por consulta' loading='lazy' title=

Sintaxe:

SELECT column1 aggregate_function(column2) FROM table_name WHERE condition GROUP BY column1 column2;
  • função_agregada: função usada para agregação, por ex. SOMA() AVG() CONTAGEM().
  • nome_tabela: nome da tabela da qual os dados são selecionados.
  • doença: Condição opcional para filtrar linhas antes do agrupamento (usada com WHERE).
  • coluna1 coluna2: Colunas nas quais o agrupamento é aplicado.

Exemplos de GRUPO POR

Vamos supor que temos uma tabela Student. Inseriremos alguns dados de amostra nesta tabela e, em seguida, realizaremos operações usando GROUP BY para entender como ele agrupa linhas com base em uma coluna e agrega dados.

grp' loading='lazy' title=

Exemplo 1: Agrupar por coluna única

Quando agrupamos por uma única coluna, as linhas com o mesmo valor naquela coluna são combinadas. Por exemplo, agrupar por disciplina mostra quantos alunos estão matriculados em cada disciplina.

Consulta:

SELECT subject COUNT(*) AS Student_Count FROM Student GROUP BY subject;

Saída:

grp-1' loading='lazy' title=

Explicação: Cada disciplina aparece duas vezes na tabela, então a contagem para Matemática e Ciências Inglesas é 2.

como inventou a escola

Exemplo 2: Agrupar por múltiplas colunas

Usar GROUP BY com múltiplas colunas agrupa linhas que compartilham os mesmos valores nessas colunas. Por exemplo, agrupar por disciplina e ano combinará linhas com o mesmo par disciplina-ano e poderemos contar quantos alunos se enquadram em cada grupo.

Consulta:

SELECT subject year COUNT(*) FROM Student GROUP BY subject year;

Saída:

estudantes-grp' loading='lazy' title=

Explicação: Os alunos da mesma disciplina e ano são agrupados. Como cada par disciplina-ano ocorre duas vezes, a contagem é 2 para cada grupo.

Cláusula HAVING na cláusula GROUP BY

A cláusula HAVING é usada para filtrar resultados após o agrupamento, especialmente ao trabalhar com funções agregadas como SUM() COUNT() ou AVG(). Ao contrário de WHERE, aplica condições em dados agrupados.

funcionário' loading='lazy' title=

Exemplo 1: Filtrar por Salário Total

Nesta consulta agrupamos os funcionários por nome e exibimos apenas aqueles cujo salário total é superior a 50.000.

SELECT NAME SUM(sal) FROM Emp GROUP BY name HAVING SUM(sal)>50000; 

Saída

idade-1' loading='lazy' title=

Explicação : Somente os funcionários cujo salário total excede 50.000 aparecem no resultado.

Exemplo 2: Filtrar por salário médio

Nesta consulta agrupamos os funcionários por idade e exibimos apenas as faixas etárias onde o salário médio é superior a 60.000.

SELECT age AVG(sal) AS Average_Salary FROM emp GROUP BY age HAVING AVG(sal) > 60000;

Saída:

saída-1' loading='lazy' title=

Explicação: Esta consulta agrupa funcionários por idade e calcula o salário médio para cada idade. Somente as faixas etárias onde o salário médio é superior a 60.000 são exibidas.

Criar questionário