-
Notifications
You must be signed in to change notification settings - Fork 2
/
todas_las_queries.sql
141 lines (105 loc) · 4.26 KB
/
todas_las_queries.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
-- Que grupos tiene asignados un profesor
SELECT nombre_grupo FROM Grupos
WHERE id_grupo IN (
SELECT foranea_id_grupo FROM relacion_Profesor_Materias_Grupos
WHERE foranea_CI_profesor = 34554485
);
-- Alumnos que pertenecen a un profesor
SELECT A.foranea_CI_alumno
FROM relacion_Alumno_Materias_Grupos A, relacion_Profesor_Materias_Grupos P
WHERE A.foranea_id_grupo = P.foranea_id_grupo AND A.foranea_id_materia = P.foranea_id_materia
AND P.foranea_CI_profesor = 34554485;
-- Profesores que tiene un alumno
SELECT P.foranea_CI_profesor
FROM relacion_Alumno_Materias_Grupos A, relacion_Profesor_Materias_Grupos P
WHERE A.foranea_id_grupo = P.foranea_id_grupo AND A.foranea_id_materia = P.foranea_id_materia
AND A.foranea_CI_alumno = 57501631;
-- GRupos asignados a un Profe
SELECT foranea_id_grupo
FROM relacion_Profesor_Materias_Grupos
WHERE foranea_CI_profesor = 52694405;
-- Cant Grupos asignados a un profe
SELECT foranea_CI_Profesor, count(*) AS cant_grupos
FROM relacion_Profesor_Materias_Grupos
GROUP BY foranea_CI_profesor ORDER BY cant_grupos DESC;
-- Grupos asignados a cualquier profee
SELECT DISTINCT(foranea_CI_profesor)
FROM relacion_Profesor_Materias_Grupos;
-- Profesores en total
SELECT CI
FROM Personas
WHERE tipo = 'Profesor';
-- Alumnos que hay en un grupo
SELECT foranea_CI_alumno
FROM relacion_Alumno_Materias_Grupos
WHERE foranea_id_grupo = 15;
-- De que da clases un Profesor
SELECT nombre_materia FROM Materias
WHERE id_materia IN (
SELECT foranea_id_materia FROM relacion_Profesor_Materias_Grupos
WHERE foranea_CI_profesor=47530149 );
-- Que clases tiene un Alumno
SELECT nombre_materia FROM Materias
WHERE id_materia IN (
SELECT foranea_id_materia FROM relacion_Alumno_Materias_Grupos
WHERE foranea_CI_alumno=23639175 );
-- Notas relacionadas al Proyecto
SELECT nota FROM Evaluaciones
WHERE CI_alumno = 45245241 AND
categoria IN ( 'Primera_entrega_proyecto',
'Segunda_entrega_proyecto',
'Entrega_final_proyecto',
'Defensa_individual',
'Defensa_grupal',
'Es_proyecto');
-- Promedio de las calificaciones de proyecto
SELECT (avg(nota) * 0.60) FROM Evaluaciones
WHERE CI_alumno = 33137078 AND
categoria IN ( 'Primera_entrega_proyecto',
'Segunda_entrega_proyecto',
'Entrega_final_proyecto',
'Defensa_individual',
'Defensa_grupal',
'Es_proyecto');
-- TOP 5 alumnos con mas notas relacionadas al proyecto
-- Por cedula
SELECT CI_alumno,count(*)
FROM Evaluaciones
WHERE categoria IN ( 'Primera_entrega_proyecto',
'Segunda_entrega_proyecto',
'Entrega_final_proyecto',
'Defensa_individual',
'Defensa_grupal',
'Es_proyecto')
GROUP BY CI_alumno ORDER BY count(*) DESC;
-- Por Nombre y apellido
SELECT FIRST 5
*,
count(*)
FROM Personas
INNER JOIN Evaluaciones
ON Evaluaciones.CI_alumno = Personas.CI
WHERE categoria IN ( 'Primera_entrega_proyecto',
'Segunda_entrega_proyecto',
'Entrega_final_proyecto',
'Defensa_individual',
'Defensa_grupal',
'Es_proyecto')
GROUP BY
CI,
primer_nombre,
primer_apellido
ORDER BY count(*) DESC;
-- Sacar todos las evaluaciones de un alumno
SELECT * FROM Evaluaciones WHERE CI_alumno = 33137078;
-- Edad promedio de personas
SELECT CAST ( avg(CAST ( fecha_nacimiento AS FLOAT)) AS DATE )
FROM Personas;
-- Alumnos que hacen proyecto
SELECT ( primer_nombre || ' ' || primer_apellido) AS Nombre
FROM Personas
WHERE CI IN (
SELECT CI_alumno
FROM Alumno
WHERE hace_proyecto = "t"
);