English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como agrupar linhas com base em valores de coluna.
cláusula GROUP BY comSELECTdeclaraçãoFunções de agregaçãousados conjuntamente para agrupar linhas com valores comuns
Para facilitar a compreensão, vamos ver a seguiremployeesEdepartmentsTabela.
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
Tabela: employees | Tabela: departments |
Agora, não é apenas para encontrar o nome do departamento e os funcionários, mas para encontrar o número total de funcionários em cada departamento.
Para tabelas pequenas, você pode simplesmente aplicarJunção esquerdaE calcular o número de funcionários, mas supondo que uma tabela contenha milhares de funcionários, isso não será tão fácil.
Neste caso, pode-se usar a cláusula GROUP BY juntamente com a declaração SELECT, conforme exemplo a seguir:
SELECT t1.dept_name, count(t2.emp_id) AS total_employees FROM departments AS t1 LEFT JOIN employees AS t2 ON t1.dept_id = t2.dept_id GROUP BY t1.dept_name;
Se executar a declaração acima, você obterá a seguinte saída:
+-------------------+-----------------+ | dept_name | total_employees | +-------------------+-----------------+ | Administração | 1 | | Serviço ao Cliente | 0 | | Finanças | 1 | | Recursos Humanos | 1 | | Sales | 1 | +-------------------+-----------------+
No próximo capítulo, você aprenderá como usar a cláusula HAVING e GROUP BY para especificar condições de pesquisa para agrupamentos ou agregações.