2.3. Agrupando resultados para operações estatísticas
Já aprendemos que o operador DISTINCT permite agrupar valores de uma relação de forma a não repetir registros. Entretanto a SQL também oferece um operador, denominado GROUP BY, que além de criar grupos como o DISTINCT, permite realizar uma série de operações, como contagem de registros, apresentar valores mínimos, máximos, médias, desvio padrão e outros.
O operador GROUP BY tem duas configurações:
Dessa forma, o padrão para se escrever uma cláusula com GROUP BY é:
SELECT <campo agregado>, OPERADOR_DESEJADO (campo computado)
FROM tabela
GROUP BY <campo_agregado>.
A cláusula GROUP BY não é compatível com o filtro de registros realizado pelo operador WHERE. No caso do GROUP BY devemos utilizar o operador HAVING que tem o mesmo efeito e forma de construção da cláusula WHERE. Veremos exemplos da cláusula HAVING logo a seguir.
Os tipos de operadores matemáticos que veremos a seguir apresentarão exemplos que utilizam essa forma básica de construção da cláusula GROUP BY.