Cláusula GROUP BY

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

A cláusula GROUP BY no Access combina registros com valores idênticos da lista de campos especificada em um único registro. Um valor de resumo é criado para cada registro se você inclui uma função de agregação SQL, como Soma ou Contagem, na instrução SELECT.

Sintaxe

LISTA DE CAMPOS SELECT
Tabela FROM
Critérios WHERE
[GROUP BY groupfieldlist]

Uma instrução SELECT contendo uma cláusula GROUP BY tem estas partes:

Parte Descrição
listacampos O nome do campo ou dos campos a serem recuperados junto com qualquer alias de nome de campo, funções agregadas, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP) ou outras opções de instrução SELECT.
tabela O nome da tabela da qual os registros são recuperados.
critérios Critérios de seleção. Se a instrução inclui uma cláusula WHERE, o mecanismo de banco de dados do Microsoft Access agrupa os valores após aplicar as condições WHERE aos registros.
listacamposgrupo Os nomes de até 10 campos usados para agrupar os registros. A ordem dos nomes dos campos em listacamposgrupo determina os níveis de agrupamento do mais alto para o mais baixo.

Comentários

GROUP BY é opcional.

Os valores de resumo são omitidos se não há função de agregação SQL na instrução SELECT.

Os valores Null em campos GROUP BY são agrupados e não são omitidos. Porém, os valores Null não são avaliados em nenhuma função de agregação SQL.

Use a cláusula WHERE para excluir as linhas que você não quer que sejam agrupadas e use a cláusula HAVING para filtrar os registros após terem sido agrupados.

A menos que contenha dados de Memorando ou Objeto OLE, um campo da lista de campos GROUP BY pode se referir a qualquer campo em qualquer tabela listada na cláusula FROM, mesmo se o campo não estiver incluído na instrução SELECT, contanto que a instrução SELECT inclua pelo menos uma função de agregação SQL. O mecanismo de banco de dados do Microsoft Access não pode agrupar em campos de Memorando ou Objeto OLE.

Todos os campos da lista de campos SELECT devem ser incluídos na cláusula GROUP BY ou ser incluídos como argumentos para uma função de agregação SQL.