Database
 sql >> Base de Dados >  >> RDS >> Database

Qual é o uso da instrução SQL GROUP BY?

Quando uma grande quantidade de dados está presente, muitas vezes vemos a possibilidade de manipular os dados de acordo com nossos requisitos. A cláusula GROUP BY é uma dessas instruções em SQL, usada para agrupar os dados com base em algumas colunas ou em condições. Neste artigo sobre a instrução SQL GROUP BY, discutirei algumas maneiras de usar as instruções GROUP BY na seguinte sequência:

  1. Instrução GROUP BY
  2. Sintaxe
  3. Exemplos:
    • Use GROUP BY em uma única coluna
    • GROUP BY em várias colunas
    • Use GROUP BY com ORDER BY
    • GROUP BY com cláusula HAVING
    • Use GROUP BY com JOINS

Antes de passarmos aos exemplos de como usar a cláusula GROUP BY, vamos entender o que é GROUP BY em SQL e sua sintaxe.

Instrução SQL GROUP BY

Esta instrução é usada para agrupar registros com os mesmos valores. A instrução GROUP BY é frequentemente usada com as funções de agregação para agrupar os resultados por uma ou mais colunas. Além disso, a cláusula GROUP BY também é usada com a cláusula HAVING e JOINS para agrupar o conjunto de resultados com base nas condições.

SQL GROUP BY Sintaxe

SELECT Column1, Column2,..., ColumnN
FROM TableName
WHERE Condition
GROUP BY ColumnName(s)
ORDER BY ColumnName(s);

Aqui, você pode adicionar as funções agregadas antes dos nomes das colunas e também uma cláusula HAVING no final da instrução para mencionar uma condição. A seguir, neste artigo sobre SQL GROUP BY, vamos entender como implementar essa instrução.

Exemplos:

Para sua melhor compreensão, dividi os exemplos nas seguintes seções:

    • Use GROUP BY em uma única coluna
    • GROUP BY em várias colunas
    • Use GROUP BY com ORDER BY
    • GROUP BY com cláusula HAVING
    • Use GROUP BY com JOINS

Vou considerar a tabela a seguir para explicar os exemplos:

EmpID EmpName EmpEmail PhoneNumber Salário Cidade

1

Nidhi

[email protected]

9955669999

50000

Mumbai

2

Sim

[email protected]

9875679861

55000

Pune

3

Rahul

[email protected]

9876543212

35000

Delhi

4

Sônia

[email protected]

9876543234

35000

Delhi

5

Akash

[email protected]

9866865686

25000

Mumbai


Vamos dar uma olhada em cada um deles.

Use SQL GROUP BY em uma única coluna

Exemplo:

Escreva uma consulta para recuperar o número de funcionários em cada cidade.

SELECT COUNT(EmpID), City
FROM Employees
GROUP BY City;

Saída:


Você verá a seguinte saída:
Contagem(EmpID) Cidade

2

Delhi

2

Mumbai

1

Pune

Use SQL GROUP BY em várias colunas

Exemplo:

Escreva uma consulta para recuperar o número de funcionários com salários diferentes em cada cidade.

SELECT City, Salary, Count(*)
FROM Employees
GROUP BY City, Salary;

Saída:


A tabela terá os seguintes dados:
Cidade Salário Contagem(*)

Delhi

35000

2

Mumbai

25000

1

Mumbai

50000

1

Pune

55000

1

Use SQL GROUP BY com ORDER BY

Quando usamos a instrução SQL GROUP BY com a cláusula ORDER BY, os valores são classificados em ordem crescente ou decrescente.

Exemplo:

Escreva uma consulta para recuperar o número de funcionários em cada cidade, classificados em ordem decrescente.

SELECT COUNT(EmpID), City
FROM Employees
GROUP BY City
ORDER BY COUNT(EmpID) DESC;

Saída:

A tabela terá os seguintes dados:

Contagem(EmpID) Cidade

2

Delhi

2

Mumbai

1

Pune

Use SQL GROUP BY com cláusula HAVING

A instrução SQL GROUP BY é usada com a cláusula 'HAVING' para mencionar condições em grupos. Além disso, como não podemos usar as funções agregadas com a cláusula WHERE, temos que usar a cláusula 'HAVING' para usar as funções agregadas com GROUP BY.

Exemplo:

Faça uma consulta para recuperar o número de funcionários em cada cidade, com salário> 15.000

SELECT COUNT(EmpID), City
FROM Employees
GROUP BY City
HAVING SALARY > 15000;

Saída:


Como todos os registros da tabela Employee possuem salário> 15.000, veremos a seguinte tabela como saída:

Contagem(EmpID) Cidade

2

Delhi

2

Mumbai

1

Pune

Use GROUP BY com JOINS

JOINS são instruções SQL usadas para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre essas tabelas. Podemos usar a instrução SQL GROUP BY para agrupar o conjunto de resultados com base em uma coluna/colunas. Considere as tabelas abaixo para executar as instruções JOIN com a cláusula SQL GROUP BY.

Tabela de Projetos:

ID do projeto EmpID ClientID Data do projeto
2345 1 4 26-01-2019
9876 2 5 28-02-2019
3456 3 6 12-03-2019

Tabela de clientes:

ClientID Nome do Cliente

4

Sanjana

5

Rohan

6

Arun

Exemplo


Escreva uma consulta para listar o número de projetos solicitados por cada cliente:
SELECT Clients.ClientName, COUNT(Projects.ProjectID) AS RequestedProjects FROM Projects
LEFT JOIN Clients ON Projects.ProjectID = Clients.ProjectID
GROUP BY ClientName;

Saída:


A tabela terá os seguintes dados:
ClientName Projetos Solicitados

Arun

1

Rohan

1

Sanjana

1

Com isso, chegamos ao fim do artigo SQL GROUP BY. Confira isso Treinamento de certificação de DBA MySQL da Edureka, uma empresa confiável de aprendizado on-line com uma rede ode mais de 250.000 alunos satisfeitos espalhados pelo mundo. Este curso treina você nos principais conceitos e ferramentas e técnicas avançadas para gerenciar dados e administrar o banco de dados MySQL. Inclui aprendizado prático em conceitos como MySQL Workbench, MySQL Server, Modelagem de Dados, MySQL Connector, Design de Banco de Dados, Linha de Comando MySQL, Funções MySQL, etc. gerenciar dados.

Tem alguma pergunta para nós? Mencione-o na seção de comentários deste artigo “SQL GROUP BY” e entraremos em contato com você o mais rápido possível.