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.
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;