Una GROUP BYcláusula en SQL especifica que una SELECTinstrucción SQL divide las filas de resultados en grupos, según sus valores en una o varias columnas. Normalmente, la agrupación se utiliza para aplicar algún tipo de función de agregación a cada grupo. [ 1 ] [ 2 ]
El resultado de una consulta que utiliza una GROUP BYcláusula contiene una fila por cada grupo. Esto implica restricciones en las columnas que pueden aparecer en la SELECTcláusula asociada. Como regla general, la SELECTcláusula solo puede contener columnas con un valor único por grupo. Esto incluye las columnas que aparecen en la GROUP BYcláusula, así como las agregaciones que dan como resultado un valor por grupo. [ 3 ]
Ejemplos
Devuelve una lista de identificadores de departamento junto con la suma de sus ventas al 1 de enero de 2000.
SELECCIONAR IDDepartamento , SUMA ( ImporteVenta ) DE Ventas DONDE FechaVenta = '01-ene-2000' AGRUPAR POR IDDepartamentoEn el siguiente ejemplo se puede preguntar "¿Cuántas unidades se vendieron en cada región para cada fecha de envío? ":
El siguiente código devuelve los datos de la tabla dinámica anterior , que responde a la pregunta "¿Cuántas unidades se vendieron en cada región para cada fecha de envío?":
SELECCIONAR Región , Fecha_envío , SUMA ( Unidades ) COMO Suma_de_Unidades DE DatosPlanos AGRUPAR POR Región , Fecha_envíoCON ENROLLABLE
Desde SQL:1999 , GROUP BYse puede extender WITH ROLLUPpara agregar una línea de resultados con un resultado de superagregador. En el ejemplo anterior, corresponde a la línea del total general .
Agrupaciones comunes
Las funciones de agrupación ( agregación ) comunes incluyen:
- Recuento ( expresión ) - Cantidad de registros coincidentes (por grupo)
- Suma ( expresión ) - Suma del valor dado (por grupo)
- Mín ( expresión ) - Mínimo del valor dado (por grupo)
- Máx ( expresión ) - Valor máximo del valor dado (por grupo)
- Promedio ( expresión ) - Promedio del valor dado (por grupo)
Véase también
Referencias
Enlaces externos
- Fragmentos de SQL: Tutoriales sobre funciones de SQL - Agrupación de filas con GROUP BY
- Palabras clave SQL
- Bases de datos incompletas
- Temas básicos de lenguajes de programación