Ejercicio 38: Gestión de Notas de Examen

En este ejercicio, se busca practicar consultas SQL para transformar y analizar datos relacionados con los exámenes de estudiantes. El objetivo es aplicar técnicas de transformación de datos y creación de tablas en SQL.

Objetivos

  • Transformar datos de exámenes en una estructura tabular consolidada.
  • Determinar el estado de aprobación de los estudiantes.
  • Crear una tabla final con los datos transformados.

Entrada de Datos

La base de datos contiene una tabla con la siguiente estructura:

  • Nombre: Nombre del estudiante.
  • Sexo: Sexo del estudiante.
  • Edad: Edad del estudiante.
  • Instancia: Instancia del examen (e.g., Parcial-01, Recuperatorio-02).
  • Nota: Calificación obtenida en el examen.

Ejemplo de datos:

NombreSexoEdadInstanciaNota
BrunoM19Parcial-0110
CamilaF20Parcial-013
DiegoM20Parcial-027
FranciscoM22Recuperatorio-025

Parte 1: Transformación de Notas de Examen

Se requiere transformar la información de los exámenes en una tabla donde cada estudiante tenga una única fila con sus datos personales y sus calificaciones en diferentes instancias de evaluación.

Código Base

-- TODO: Implementar la consulta para transformar las notas de examen
SELECT 
    nombre, 
    sexo, 
    edad,
    -- Utilizar CASE WHEN o PIVOT para transformar las instancias de examen
FROM 
    examenes
GROUP BY 
    nombre, sexo, edad;

Parte 2: Agregar Estado de Aprobación

Agregar una columna Estado, que indique si el estudiante “APROBÓ” o “NO APROBÓ” la cursada. Un estudiante aprueba si tiene al menos una nota mayor o igual a 4.

Código Base

-- TODO: Implementar la consulta para agregar el estado de aprobación
SELECT 
    nombre, 
    sexo, 
    edad,
    -- Incluir las columnas de notas transformadas
    CASE 
        WHEN -- Condición para determinar si el estudiante aprobó
        THEN 'APROBÓ'
        ELSE 'NO APROBÓ'
    END AS estado
FROM 
    -- Subconsulta o tabla transformada

Parte 3: Creación de la Tabla Final

Crear una nueva tabla llamada Examen con la estructura final que contenga todos los datos transformados.

Código Base

-- Crear la estructura de la tabla
CREATE TABLE Examen (
    nombre VARCHAR(50),
    sexo CHAR(1),
    edad INT,
    parcial_01 INT,
    parcial_02 INT,
    recuperatorio_01 INT,
    recuperatorio_02 INT,
    estado VARCHAR(10)
);

-- TODO: Insertar los datos transformados en la nueva tabla
INSERT INTO Examen
SELECT 
    -- Seleccionar los datos transformados y el estado
FROM 
    -- Subconsulta o tabla transformada

Pruebas

Ejemplo de consulta esperada para la transformación de notas:

-- Ejemplo de consulta para verificar la transformación de notas
SELECT 
    nombre, 
    sexo, 
    edad, 
    MAX(CASE WHEN instancia = 'Parcial-01' THEN nota END) AS parcial_01,
    MAX(CASE WHEN instancia = 'Parcial-02' THEN nota END) AS parcial_02,
    MAX(CASE WHEN instancia = 'Recuperatorio-01' THEN nota END) AS recuperatorio_01,
    MAX(CASE WHEN instancia = 'Recuperatorio-02' THEN nota END) AS recuperatorio_02
FROM 
    examenes
GROUP BY 
    nombre, sexo, edad;

Se espera que el estudiante entregue el SQL con consultas para cada parte, capturas de resultados esperados y una explicación breve de las estrategias utilizadas.