Está en la página 1de 4

ESCUELA SUPERIOR POLITÉCNICA DE

CHIMBORAZO

FACULTAD DE INFORMÁTICA Y ELECTRÓNICA


CARRERA DE SOFTWARE

SISTEMAS DE INFORMACIÓN Y PROCESAMIENTO DE DATOS

INFORME DE TAREA No. 11

1. DATOS GENERALES:

TEMA: ANÁLISIS CON SQL

NOMBRE: CÓDIGO:

ARIEL HURTADO 6825

GRUPO No:

FECHA DE ENTREGA: 12/07/2022


2. OBJETIVO

Especificar 3 requerimientos y realizar los scripts de estos mediante grouping sets para
almacenar los resultados en nuevas tablas agg.

3. ACTIVIDADES DESARROLLADAS

1. Especificar 3 Requerimientos (RQs)


• RQ1: Cantidad de estudiantes por materia y estado
• RQ2: Cantidad de estudiantes por carrera y estado civil
• RQ3: Cantidad de estudiantes por escuela y docente
2. Según los RQs realizar los Script SQL utilizando GROUPING SETS
• Script RQ1

-- Cantidad de estudiantes por materia y estado


select case when grouping(mat.MATERIA)=1 then 'TOTAL' else isnull(mat.MATERIA, 'ND')
end materia,
case when grouping(seg.Estado)=1 then 'TOTAL' else isnull(seg.Estado, 'ND') end
estado,
sum(seg.CANTIDAD) cantidadEstudiantes
into DDM.AGG_EST_MATERIA_ESTADO
from EDW.H_SEGACADEMICO seg
inner join EDW.D_MATERIA mat
on(mat.ID_MATERIA=seg.ID_MATERIA)
group by rollup (mat.MATERIA, seg.ESTADO)

• Script RQ2

-- Cantidad de estudiantes por carrera y estado civil


select case when grouping(ubi.CARRERA)=1 then 'TOTAL' else isnull(ubi.CARRERA, 'ND')
end materia,
case when grouping(est.ESTADO_CIVIL)=1 then 'TOTAL' else isnull(est.ESTADO_CIVIL,
'ND') end estadoCivil,
sum(seg.CANTIDAD) cantidadEstudiantes
into DDM.AGG_EST_CARRERA_ESTADO_CIVIL
from EDW.H_SEGACADEMICO seg
inner join EDW.D_UBIACADEMICA ubi
on(ubi.ID_UBICACION=seg.ID_UBICACION)
inner join EDW.D_ESTUDIANTE est
on(est.ID_ESTUDIANTE=seg.ID_ESTUDIANTE)
group by rollup (ubi.CARRERA, est.ESTADO_CIVIL)

• Script RQ3
-- Cantidad de estudiantes por escuela y docente
select case when grouping(ubi.ESCUELA)=1 then 'TOTAL' else isnull(ubi.ESCUELA, 'ND')
end escuela,
case when grouping(doc.DOCENTE)=1 then 'TOTAL' else isnull(doc.DOCENTE, 'ND') end
docente,
sum(seg.CANTIDAD) cantidadEstudiantes
into DDM.AGG_ESCUELA_DOCENTE
from EDW.H_SEGACADEMICO seg
inner join EDW.D_DOCENTE doc
on(doc.ID_DOCENTE= seg.ID_DOCENTE)
inner join EDW.D_UBIACADEMICA ubi
on(ubi.ID_UBICACION=seg.ID_UBICACION)
group by rollup (ubi.ESCUELA ,doc.DOCENTE)

3. Almacenar los resultados en nuevas tablas (Agg)

• Tabla Agg para RQ1

• Tabla Agg para RQ2

• Tabla Agg para RQ3


4. RESULTADOS OBTENIDOS

Se creó un esquema DDM en la base de datos, se establecieron los requerimientos


solicitados, se realizaron los scripts acordes a los requerimientos utilizando los grouping
sets mediante la técnica de rollup, y el resultado de cada script fue almacenado en tablas
agg con el esquema DDM en la base de datos, para ser consultadas cuando se necesiten
estos resultados a conveniencia.

5. CONCLUSIONES

• La cláusula GROUP BY se utiliza para agrupar los resultados de las funciones


agregadas de acuerdo con una columna especificada.
• La cláusula GROUP BY no realiza operaciones agregadas en varios niveles de una
jerarquía.
• Los operadores ROLLUP le permiten ampliar la funcionalidad de las cláusulas
GROUP BY calculando subtotales y totales generales para un conjunto de columnas.
• El operador CUBE es similar en funcionalidad al operador ROLLUP; sin embargo, el
operador CUBE puede calcular subtotales y totales generales para todas las
permutaciones de las columnas especificadas en él.

6. RECOMENDACIONES

• Crear el esquema DDM antes de crear todas las tablas agregadas


• Realizar correctamente los join mediante sus claves primarias y foráneas
respectivamente.

También podría gustarte