/ 01.sql
01.sql
1 SELECT pcs.nombre_profesor, 2 pcs.nombre_curso, 3 pcs.seccion, 4 pcs.id_curso, 5 pcs.codigo, 6 tsc.semanas, 7 ccc.cantidad_clases, 8 ROUND((ccc.cantidad_clases::NUMERIC / tsc.semanas::NUMERIC), 1) AS clases_en_semana 9 FROM ( 10 SELECT DISTINCT ON (p.nombre, c.nombre) p.nombre AS nombre_profesor, 11 c.nombre AS nombre_curso, 12 c.seccion, 13 c.id AS id_curso, 14 c.codigo 15 FROM relacion r 16 LEFT JOIN profesor p ON r.profesor = p.id 17 LEFT JOIN curso c ON r.curso = c.id 18 WHERE r.semestre = 26 19 ) pcs 20 LEFT JOIN ( 21 SELECT sp.curso, 22 c.codigo, 23 semestre, 24 COUNT(semestre) AS semanas 25 FROM semana_planificada sp 26 LEFT JOIN curso c ON sp.curso = c.id 27 WHERE semestre = 26 28 GROUP BY sp.curso, 29 c.codigo, 30 semestre 31 ) tsc ON pcs.id_curso = tsc.curso 32 LEFT JOIN ( 33 SELECT sp.curso AS curso, 34 COUNT(*) AS cantidad_clases 35 FROM actividad_clase ac 36 JOIN clase_planificada cp ON cp.id = ac.id_clase 37 JOIN semana_planificada sp ON cp.id_semana = sp.id 38 WHERE sp.semestre = 26 39 GROUP BY sp.curso 40 ) ccc ON pcs.id_curso = ccc.curso;