Cláusula GROUP BY Cláusula GROUP BY

A cláusula GROUP BY, que faz parte da ExpressãoSeleção, agrupa o resultado em subconjuntos que possuem valores correspondentes em uma ou mais colunas. Em cada grupo não há duas linhas com o mesmo valor na coluna, ou colunas, de agrupamento. Para as finalidades de agrupamento os valores nulos são considerados equivalentes.

Normalmente a cláusula GROUP BY é utilizada junto com expressões de agregação.

Sintaxe GROUP BY nome-da-coluna [ , nome-da-coluna ] *

O nome-da-coluna deve ser uma coluna do escopo corrente da consulta; não pode haver nenhuma coluna do bloco de consulta fora do escopo corrente. Por exemplo, se a cláusula GROUP BY estiver na subconsulta, então não poderá fazer referência a colunas da consulta externa.

Os ItensSelecionados em uma ExpressãoSeleção com cláusula GROUP BY devem conter somente agregações ou colunas de agrupamento.

-- calcular o TEMPO_VÔO médio agrupado por aeroporto SELECT AVG (TEMPO_VÔO), AEROPORTO_ORIGEM FROM VÔOS GROUP BY AEROPORTO_ORIGEM SELECT MAX(CIDADE), REGIÃO FROM CIDADES, PAÍSES WHERE CIDADES.COD_ISO_PAÍS = PAÍSES.COD_ISO_PAÍS GROUP BY REGIÃO -- agrupar por um SMALLINT SELECT ID, AVG(SALÁRIO) FROM SAMP.EQUIPES GROUP BY ID -- Obter as colunas SALÁRIO_MÉDIO, NUM_EMP e NUM_DEP -- utilizando a cláusula AS -- Agrupar pela coluna DEP_TRAB utilizando o nome de -- correlação OUTROS SELECT OUTROS.DEP_TRAB AS NUM_DEP, AVG(OUTROS.SALÁRIO) AS SALÁRIO_MÉDIO, COUNT(*) AS NUM_EMP FROM SAMP.EMPREGADOS OUTROS GROUP BY OUTROS.DEP_TRAB;