lunes, 4 de diciembre de 2017

Receta T-SQL No. 5-5: Crear un Cubo Multidimensional para un Resultado

Índice

1. Introducción
2. Palabras Clave
3. Problema
4. Solución
5. Discusión de la Solución
6. Práctica: Subtotal de Productos
7. Conclusiones
8. Literatura & Enlaces

1. Introducción

Con esta receta T-SQL se pretende mostrar cómo sumarizar un conjunto de resultados en un cubo multidimensional. Esta operación es de importante interés para obtener totales a partir de la combinación o agrupación de varias columnas respecto a otra que representa una cantidad, un valor, etc. Se usará el operador CUBE.

2. Palabras Clave

  • Combinación
  • Cubo
  • Multidimensional
  • Resumen

3. Problema


Se requiere obtener los subtotales a partir de todas las combinaciones posibles de las columnas Traje y Color. Los datos con los que se cuentan son:
Datos a combinar
Tabla 1. Datos a combinar.

3. Solución

T-SQL cuenta con el operador CUBE para generar todas las posibles combinaciones a partir de los nombres de columnas especificados como argumentos.

4. Discusión de la Solución

CUBE ("GROUPING (Transact-SQL)", 2017) es un operador de la cláusula GROUP BY, con el cual podemos obtener todas las combinaciones posibles de columnas. Las columnas se especifican como argumentos.

Para el caso que se requiere resolver es necesario crear la siguiente combinación:

...GROUP BY CUBE(Traje, Color)

Pero además en la cláusula SELECT se ha de especificar la columna que se quiere sumarizar o agregar:

SELECT Traje, Color, SUM(Cantidad) AS SumaCantidades ...

Nótese cómo ha resaltado la tercera columna. Esta columna contendrá la suma de los datos combinados; por ejemplo 350 que será el total de la combinación de las blusas tanto de color rojo como amarillo.

5. Práctica: Subtotal de Productos

El código T-SQL para obtener le resultado requerido es, entonces:

SELECT Traje, Color, SUM(Cantidad) AS SumaCantidades
    FROM Producto
    GROUP BY CUBE(Traje, Color);

Una vez ejecutemos esta sentencia, obtendremos:
Resultado combinación con CUBE
Tabla 2. Resultado combinación con CUBE.

La fila que contiene el valor NULL para las columnas Traje y Color el total de blusas y camisas que ya sean de color amarillo o rojo es de 850. Que es lo mismo que sumar la columna Cantidad de la Tabla 1.

7. Conclusiones

A través de esta receta el lector ha comprendido los básicos de combinaciones de columnas para obtener subtotales a través del operador CUBE de la cláusula GROUP BY.

8. Literatura & Enlaces

Brimhall, J., Dye, D., Gennick, J., Roberts, A., Sheffield, W. (2012). SQL Server 2012 T-SQL Recipes - A Problem-Solution Approach. United States: Apress.
GROUPING (Transact-SQL) | Microsoft Docs (2017). Recuperado desde: https://docs.microsoft.com/en-us/sql/t-sql/functions/grouping-transact-sql


O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.