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;

Conceitos relacionados
Intera????o com o sistema de depend??ncias
Instru????es CREATE
Instru????es DROP
Instru????es RENAME
Instru????es SET
Refer??ncias relacionadas
Instru????o ALTER TABLE
CALL (PROCEDIMENTO)
Cl??usula CONSTRAINT
Instru????o DECLARE GLOBAL TEMPORARY TABLE
Instru????o DELETE
Cl??usula FOR UPDATE
Cl??usula FROM
Cl??usula HAVING
INNER JOIN
Instru????o INSERT
Opera????o JOIN
LEFT OUTER JOIN
Instru????o LOCK TABLE
Cl??usula ORDER BY
Consulta
RIGHT OUTER JOIN
SubconsultaEscalar
Express??oSele????o
Instru????o SELECT
Express??oTabela
SubconsultaTabela
Instru????o UPDATE
VALUES Express??o
Cl??usula WHERE
Cl??usula WHERE CURRENT OF