domingo, 2 de enero de 2011

MANEJO DE AGRUPACIONES & ACUMULACIONES

A continuación mostrare varios ejemplos para el manejo de AGRUPACIONES & ACUMULACIONES usando diferentes sentencias SQL (algunas no muy conocidas). El ejemplo fue desarrollado utilizando:

- Plataforma Windows XP
- Motor ORACLE 10G.
- IDE: PL-SQL Developer v8.0.

El ejemplo muestra un comparativo de diferentes casuísticas que uno puede ir obteniendo al combinar sentencias SQL como: COUNT, SUM, GROUP BY, GROUP BY ROLLUP, GROUP BY CUBE, GROUP BY GROUPING SETS, RANK, GROUPING, ORDER BY, ETC.

Los QUERYS a realizar muestran los siguientes resultados:

1. MUESTRA CONTENIDO TOTAL DE TABLA.
2. MUESTRA CONTENIDO TOTAL DE TABLA:
3. AGRUPACION DE [PRODUCTO ID] Y ACUMULACION DE: [ELEMENTOS] & [VENTAS].
4. ROLLUP: PARA OBTENER AGRUPACIONES DE: [AÑO] + [PRODUCTO ID], PARA CADA [AÑO] LA ACUMULACION DE SUS [ELEMENTOS] & [VENTAS]Y AL FINAL AGREGA UNA FILA NULL CON EL ACUMULADO EL 'TOTAL' DE [ELEMENTOS] & [VENTAS]. SE COMPLETAN CON NULL LAS COLUMNAS QUE NO SE ESTA CONVINANDO.
5. CUBE: PARA OBTENER AGRUPACIONES DE: [AÑO] & [PRODUCTO ID],PARA CADA [AÑO] LA ACUMULACION DE SUS [ELEMENTOS] & [VENTAS]. TAMBIEN, PARA CADA [PRODUCTO ID]] LA ACUMULACION DE SUS [ELEMENTOS] & [VENTAS], Y AL FINAL AGREGA UNA FILA NULL CON EL ACUMULADO EL 'TOTAL' DE [ELEMENTOS] & [VENTAS]. SE COMPLETAN CON NULL LAS COLUMNAS QUE NO SE ESTA CONVINANDO.
6. GROUPING SETS: PARA OBTENER 'VARIAS AGRUPACIONES' SIMULTANEAS DE: [D.YEAR & TIPO DE PRODUCTO ID & EMPLEADO ID], PARA OBTENER ACUMULACIONES DE 'ELEMENTOS' Y 'VENTAS'. SE COMPLETAN CON NULL LAS COLUMNAS QUE NO SE ESTA CONVINANDO.
7. GROUPING SETS: PARA OBTENER 'VARIAS AGRUPACIONES' SIMULTANEAS DE: [D.YEAR & (TIPO DE PRODUCTO ID + EMPLEADO ID)], PARA OBTENER ACUMULACIONES DE 'ELEMENTOS' Y 'VENTAS'. SE COMPLETAN CON NULL LAS COLUMNAS QUE NO SE ESTA CONVINANDO.
8. ROLLUP AND RANK(): PARA OBTENER LA COLUMNA 'RANKING' DE [VENTAS] EN BASE AL AGRUPAMIENTO DE [PRODUCT ID] PARA OBTENER LA ACUMULACION DE: [ELEMENTOS & VENTAS].
9. ROLLUP AND RANK(): PARA OBTENER LA COLUMNA 'RANKING' DE [VENTAS] EN BASE AL AGRUPAMIENTO DE [EMPLEADO ID] PARA OBTENER LA ACUMULACION DE: [ELEMENTOS & VENTAS].
10. GROUPING: PARA OBTENER LA COLUMNA 'RANKING' DE [VENTAS] EN BASE AL AGRUPAMIENTO DE [AÑO] PARA OBTENER LA ACUMULACION DE: [MESES & ELEMENTOS & VENTAS]. AGREGA UNA COLUMNA ADICIONAL DONDE SE VALIDA LA EXISTENCIA DE NULL, EN BASE A LA FILA CON NULL:
- GROUPING = 0 [SI ES 'NULL'].
- GROUPING = 1 [SI NO ES 'NULL'].

Para un mayor detalle de los comando SQL utilizados, descargar el TUTORIAL pulsando Aquí

No hay comentarios:

Publicar un comentario