SQL/Agrupamento
Aspeto
< SQL
group by
[editar | editar código-fonte]Podemos agrupar dados utilizando a cláusula GROUP BY que permite unir em uma única linha todas as linhas selecionadas que possuam os mesmos valores. Sua sintaxe é:
SELECT coluna1, coluna3
FROM Tabela
GROUP BY coluna1, coluna3
Exemplo:
SELECT departamento, MAX(idade)
FROM Funcionarios
GROUP BY departamento
having
[editar | editar código-fonte]Conforme aprendemos anteriormente utilizamos a cláusula WHERE quando queremos definir uma condição de retorno de um comando SELECT. No entanto a cláusula WHERE determina os dados que serão agregados, e não podem definir as condições de retorno de uma agregação. Neste caso, utilizamos a cláusula Having que seleciona grupos de linhas após as agregações e agrupamentos serem efetuados. Exemplo:
SELECT Codigo,Max(Idade)
FROM Cliente
HAVING Max(Idade)<60;
SELECT DepartmentName, COUNT(*)
FROM Employee, Department
WHERE Employee.DepartmentID = Department.DepartmentID
GROUP BY DepartmentName
HAVING COUNT(*)>1;