Pivot y Tabla de referencia cruzada
#000012
ColumnStore index en SQL Server
#000017
Los agrupamiento en SQL Server permiten mostrar un conjunto de resultados donde una o mas columnas que se muestran es el resultado del uso de alguna de las funciones de agregado que calculan suma, promedio,máximo, mínimo, etc.Si se desea mostrar mas de un agrupamiento en el mismo conjunto de resultado se deberá usar los Grouping Sets, estos son similares al uso del operador Union All. En este artículo se desea explicar como se usa la opciónGrouping Sets para mostrar múltiples resultados de agrupamientos en la misma instrucción. Adicionalmente se muestra como se usa la función Grouping.
#000018
El uso de Union all permite unir varias consultas en una agrupando varios resultados en uno solo. Se va a crear cuatro consultas, las que después usando Union All se mostrarán en un sólo conjunto de resultado.
#000021
Las instrucciones anteriores podemos mostrarlas en un sólo conjunto de resultados.
#000026
Es importante anotar que posiblemente el resultado no sea adecuado para mostrarlo en un sólo conjunto de resultados. La idea del ejercicio es mostrar el uso de Union All para mostrar varios resultados en un sólo conjunto, lo que se va a explicar en el uso de Grouping Sets.
#000027
Para el uso de Grouping sets se va a crear una tabla con los datos necesarios. Por cada empleado y por categorías, se va a calcular el total de ventas por año. Revise y considere la opción de generar una vista, es importante el uso de la vista porque los datos se actualizan a diferencia de la tabla creada que no se actualiza.
#000028
Generando la tabla llamada TotalesVentasEmpleadoAñoCategoria.
#000029
Listado de los registros de la tabla creadaselect * from TotalesVentasEmpleadoAñoCategoriagoEl resultado se muestra en la siguiente imagen
#000030
Para mostrar el uso de grouping sets se van a constriur cuatro diferentes consultas las que se mostrarán de manera individual primero, luego usando Grouping Sets se mostrarán agrupadas.
#000031
Note que en las cuatro consultas anteriores se ha especificado agrupamientos, estos cuatro agrupamientos son:T.CategoríaT.EmpleadoT.Empleado, T.CategoríaLa última no tiene Group by porque no existe campo en el listado sin función de agregado.
#000036
Usando el operador Union All
#000037
La misma instrucción usando Grouping Sets
#000039
Se han incluido dos columnas donde se usa la función Grouping.
#000041
ExplicaciónAl usar la función Grouping en un campo muestra dos posibles valores, CERO y UNO. El valor de UNO (1) significa que se ha agrupado por el campo que se especifica como parámetro de la función, el valor de CERO (0) indica que no se ha agrupado por el campo dentro de los paréntesis de la función.Note en la imagen anterior que el primer registro que muestra las ventas totales tanto por empleado y por categoría aparece en UNO en ambas columnas. De los registros 2 hasta el 10 se ha agrupado por categoría, mostrando las ventas totales de cada empleado. El registro 11 muestra el total de la categoría Beverage, significa la agrupación de las ventas de todos los empleadosen esa categoría.A partir del registro 12, muestra el total de las ventas tanto por Categoría como por Empleado, presenta CERO en ambas columnas porque el agrupamiento es por los dos campos y no por cada uno de ellos.
#000043
Funciones definidas por el usuario UDF
#000044
Hecho con por Graphene Themes.
#000045