colegio/doc/Informe/e2/q6.sql

25 lines
1.1 KiB
SQL

CREATE VIEW total_alumnos(asignatura, cantidad) AS (
SELECT A.id_asignatura, COUNT(*) FROM asignatura A
JOIN registro R ON (R.id_asignatura = A.id_asignatura)
JOIN alumno A2 ON (A2.rut_alumno = R.rut_alumno)
JOIN asociado A3 ON (A3.id_asignatura = A.id_asignatura)
WHERE (A3.id_curso = '1A-2018')
GROUP BY (A.id_asignatura)
);
CREATE VIEW total_aprobados(asignatura, cantidad) AS (
SELECT A.id_asignatura, COUNT(*) FROM asignatura A
JOIN registro R ON (R.id_asignatura = A.id_asignatura)
JOIN alumno A2 ON (A2.rut_alumno = R.rut_alumno)
JOIN asociado A3 ON (A3.id_asignatura = A.id_asignatura)
WHERE (A3.id_curso = '1A-2018' AND R.nota >= 4)
GROUP BY (A.id_asignatura)
);
SELECT A2.nombre, TRUNC(CAST(T1.cantidad AS DECIMAL(3,2)) * 100 / CAST(T2.cantidad AS DECIMAL(3,2)),2) AS porcentaje
FROM total_aprobados T1
JOIN total_alumnos T2 ON (T2.asignatura = T1.asignatura)
JOIN asociado A ON (T1.asignatura = A.id_asignatura AND T2.asignatura = A.id_asignatura)
JOIN asignatura A2 ON (A2.id_asignatura = A.id_asignatura)
WHERE ((CAST(T1.cantidad AS DECIMAL(3,2)) * 100 / CAST(T2.cantidad AS DECIMAL(3,2))) < 50);