A cláusula GROUP BY combina registos com valores idênticos de uma lista de campos específica num único registo. Se incluir uma função de agregação SQL na instrução SELECT, como Soma ou Contar, é criado um valor de resumo para cada registo.
Sintaxe
SELECT listadecampos
FROM tabela WHERE critérios [GROUP BY listadecampodegrupo]Uma instrução SELECT que inclua uma cláusula GROUP BY é composta por:
Parte |
Descrição |
listadecampos |
O nome do campo ou campos a obter juntamente com os aliases de nome do campo, funções de agregação SQL, predicados de seleção (ALL, DISTINCT, DISTINCTROW ou TOP) ou outras opções da instrução SELECT. |
tabela |
O nome da tabela a partir da qual são obtidos os registos. |
critérios |
Critérios de seleção. Se a instrução incluir uma cláusula WHERE, o motor de base de dados do Microsoft Access agrupa os valores após aplicar as condições WHERE aos registos. |
listadecamposdegrupo |
Os nomes de um máximo de 10 campos utilizados para agrupar registos. A ordem dos nomes dos campos na listadecamposdegrupo determina os níveis de agrupamento do mais alto para o mais baixo. |
Observações
O campo GROUP BY é opcional.
Os valores de resumo são omitidos se não existir função de agregação SQL na instrução SELECT.
Os valores Nulo nos campos GROUP BY são agrupados e não são omitidos. No entanto, os valores Nulo não são avaliados em nenhuma função de agregação SQL.
Utilize a cláusula WHERE para excluir linhas que não pretenda que sejam agrupadas e utilize a cláusula HAVING para filtrar registos depois de terem sido agrupados.
A menos que contenha dados de Objeto OLE ou Memo, um campo na lista de campos GROUP BY pode referir-se a qualquer campo em qualquer tabela listada na cláusula FROM, mesmo que o campo não esteja incluído na instrução SELECT, considerando que a instrução SELECT inclui, pelo menos, uma função de agregação SQL. O motor de base de dados do Microsoft Access não pode agrupar em campos Memo ou Objeto OLE.
Todos os campos na lista de campos SELECT devem estar incluídos na cláusula GROUP BY ou incluídos como argumentos para uma função de agregação SQL.