PL-SQL Packages en OracleAprender a usar la cláusula GROUP BY de la sentencia SELECT en tus PL-SQL Packages en Oracle te permitirá construir querys agrupadas por uno o varios campos claves, realizando a la vez sumas de valores, contar la cantidad de registros, buscar el valor mayor y menor, sacar promedios, etc.

Generalmente la creación de grupos de datos en tus PL-SQL Packages en Oracle se hace cuando se debe construir un reporte, ya que siempre se pide mostrar un informe con la información resumida y otro con la información detallada. En los informes resumidos de tus PL-SQL Packages en Oracle se muestran totales por día, por mes, por año, por cliente, por proveedor, por departamento, etc. En tus PL-SQL Packages en Oracle se pueden construir agrupaciones por una serie de criterios, todo depende del tipo de área o rubro de la compañía para la cual se construya el sistema.

Para usar correctamente la cláusula GROUP BY en tus PL-SQL Packages en Oracle se debe conocer con anterioridad el modelo de los datos que se quiere agrupar, ya que primero debes determinar cuáles son los campos clave que se repiten en las tablas por los cuales se debe agrupar. Veamos un ejemplo práctico que permita entender mejor como usar la cláusula GROUP BY en tus PL-SQL Packages en Oracle.

Ejemplo #1: Supone que debes hacer un reporte que entregue el total de tareas realizadas por cada empleado, de cada departamento, dentro del mes y por los 3 primeros meses del año. Veamos cómo se hace esta query:

/* PL-SQL Packages en Oracle */

Select

Dep.nombre_dep departamento,

Emp.nombre_emp empleado,

To_char(tar.fecha_tarea,’mm-yyyy’) Mes-Año,

Count(tar.id_tareas_empleado) tareas

From t_departamento dep,  t_empleado emp, t_tareas_empleado tar

Where tar.fecha_tarea between to_date(’01-01-2010’,’dd-mm-yyyy’) and to_date(’31-03-2010’,’dd-mm-yyyy’)

and emp.id_empleado = tar.id_empleado

and dep.id_departamento = emp.id_departamento

Group by

Dep.nombre_dep,

Emp.nombre_emp,

To_char(tar.fecha_tarea,’mm-yyyy’)

Order by

Dep.nombre_dep,

Emp.nombre_emp,

To_char(tar.fecha_tarea,’mm-yyyy’);

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Esta query está haciendo un GROUP BY por 3 campos, el nombre del departamento, nombre del empleado y mes-año de las tareas realizadas, fíjate que los campos del Select deben ser los mismos del Group By, solo se pueden agregar campos con funciones de grupo, en este caso solo se usa el Count, pero también se puede usar el Sum, Max, Min, etc. Además también se incluye el Order By por los mismos campos del Group by para que el resultado salga ordenado en tus PL-SQL Packages en Oracle.

Esta query entrega el siguiente resultado:

/* PL-SQL Packages en Oracle */

Departamento            Empleado                    Mes-Año         Tareas

CONTABILIDAD        LUIS MARDONES    01-2010          365

CONTABILIDAD        LUIS MARDONES    02-2010          212

CONTABILIDAD        LUIS MARDONES    02-2010          645

CONTABILIDAD        MARIO SOLAR         01-2010          735

CONTABILIDAD        MARIO SOLAR         02-2010          235

CONTABILIDAD        MARIO SOLAR         03-2010          723

FINANZAS                 MARCELO PEREZ     01-2010          435

FINANZAS                 MARCELO PEREZ     02-2010          324

FINANZAS                 MARCELO PEREZ     03-2010          575

FINANZAS                 JUAN GALVEZ          01-2010          680

FINANZAS                 JUAN GALVEZ          02-2010          380

FINANZAS                 JUAN GALVEZ          03-2010          430

En este ejemplo de tus PL-SQL Packages en Oracle solo se está mostrando parte del resultado, ya que solo se muestran 2 departamentos con dos empleados cada uno.

Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propias tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio - Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos