group by

editar

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

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;