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

Tópico pai: Instruções
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