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:
Nombre | Sexo | Edad | Instancia | Nota |
---|---|---|---|---|
Bruno | M | 19 | Parcial-01 | 10 |
Camila | F | 20 | Parcial-01 | 3 |
Diego | M | 20 | Parcial-02 | 7 |
Francisco | M | 22 | Recuperatorio-02 | 5 |
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.