Cláusula GROUP BY

Combina registros con valores idénticos en la lista de campos especificados en un único registro. Si incluye una función de agregado de SQL, como Suma o Cuenta en la instrucción SELECT, se crea un valor de resumen.

Sintaxis

SELECT listadecampos
FROM tabla
WHERE criterios
[GROUP BY listadecamposdegrupo]

Una instrucción SELECT que contiene una cláusula GROUP BY consta de las siguientes partes:

Parte Descripción
listadecampos Nombre del campo o campos que se van a recuperar junto con cualquier alias (alias (SQL): nombre alternativo para una tabla o campo en expresiones. Los alias se utilizan a menudo para acortar el nombre de una tabla o de un campo para referencias posteriores en el código, a fin de evitar posibles referencias ambiguas o para proporcionar un nombre más descriptivo en los resultados de una consulta.) de nombre de campo, funciones de agregado de SQL, predicados de selección (ALL, DISTINCT, DISTINCTROW o TOP) u otras opciones de la instrucción SELECT.
tabla Nombre de la tabla de la cual se recuperan los registros.
criterios Criterios de selección. Si la instrucción incluye una cláusula WHERE, el motor de base de datos Microsoft Access agrupa los valores después de aplicar las condiciones WHERE a los registros.
listadecamposdegrupo Nombres de hasta un máximo de 10 campos utilizados para agrupar registros. El orden de los nombres de campo de listadecamposdegrupo determina los niveles de agrupación desde el nivel más alto al nivel más bajo.
Comentarios

GROUP BY es opcional.

Los valores de resumen se omiten si no hay una función de agregado de SQL en la instrucción SELECT.

Los valores Nulos (Null: valor que puede especificarse en un campo o usarse en expresiones o consultas para indicar datos desconocidos o ausentes. En Visual Basic, la palabra clave Null indica un valor Null. Algunos campos, como los de clave principal, no pueden contener un valor Null.) de los campos GROUP BY se agrupan y no se omiten. No obstante, los valores Nulos no se evalúan en ninguna función de agregado de SQL.

Utilice la cláusula WHERE para excluir filas que no desea que estén agrupadas; utilice la cláusula HAVING para filtrar registros después de que hayan sido agrupados.

A menos que contenga datos Memo (tipo de datos Memo: en una base de datos de Microsoft Access, es un tipo de datos de campo. Los campos Memo pueden contener hasta 65.535 caracteres.) o un Objeto OLE (tipo de datos Objeto OLE: tipo de datos de campo que se usa para objetos creados en otras aplicaciones que pueden vincularse o insertarse en una base de datos de Access.), un campo de la lista de campos GROUP BY puede hacer referencia a cualquier campo de cualquier tabla enumerada en la cláusula FROM, incluso si el campo no se incluye en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función de agregado de SQL. El motor de base de datos Microsoft Access no puede formar grupos en los campos Memo u Objeto OLE.

Todos los campos de la lista de campos SELECT deben estar incluidos en la cláusula GROUP BY o estar incluidos como argumentos de una función de agregado de SQL.

 
 
Corresponde a:
Access 2007