-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathProyectos_ed_chile.sql
More file actions
139 lines (114 loc) · 3.03 KB
/
Copy pathProyectos_ed_chile.sql
File metadata and controls
139 lines (114 loc) · 3.03 KB
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
USE ed_chile;
-- Vemos los datos de tabla asistencia
SELECT *
FROM asistencia;
-- vemos los datos de tabla localidad
SELECT *
FROM localidad;
-- vemos el año de analisis de los datos
SELECT
año
FROM asistencia;
-- diferentes cantidades de días que asisten los alumnos
SELECT
DISTINCT dias_asistidos
FROM asistencia
ORDER BY dias_asistidos;
-- Cambiamos el nombre de la columna rbd en la tabla localidad por colegio_id
ALTER TABLE localidad
RENAME COLUMN rbd TO colegio_id;
-- Modificamos la columna colegio_id para que sea primary key y se complete en orden
ALTER TABLE localidad
MODIFY COLUMN colegio_id INT AUTO_INCREMENT PRIMARY KEY;
-- creamos una columna de asistencia_id que sea primary key y se complete en orden
ALTER TABLE asistencia
ADD COLUMN asistencia_id INT AUTO_INCREMENT PRIMARY KEY;
-- creamos una variable colegio_id para unir nuestras tablas
ALTER TABLE asistencia
ADD COLUMN colegio_id INT;
ALTER TABLE asistencia
ADD CONSTRAINT fk_asistencia_colegio
FOREIGN KEY (colegio_id)
REFERENCES localidad(colegio_id);
SHOW CREATE TABLE asistencia;
SET SQL_SAFE_UPDATES = 0;
SELECT
asistencia_id,
nom_deprov_rbd,
gen_alu,
dias_asistidos
FROM asistencia AS a
LEFT JOIN localidad AS l
ON a.nom_com_rbd = l.nom_com_rbd;
SELECT
AVG(dias_asistidos)
FROM asistencia;
SELECT
DISTINCT nom_deprov_rbd
FROM asistencia;
SELECT
AVG(dias_asistidos) AS avg_magallanes,
nom_deprov_rbd
FROM asistencia
GROUP BY nom_deprov_rbd
HAVING nom_deprov_rbd LIKE "%MAGALLANES%";
SELECT
AVG(dias_asistidos) AS avg_antofagasta,
nom_deprov_rbd
FROM asistencia
GROUP BY nom_deprov_rbd
HAVING nom_deprov_rbd LIKE "%ANTOFAGASTA - TOCOPILLA%";
SELECT
nom_deprov_rbd,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia
GROUP BY nom_deprov_rbd
HAVING nom_deprov_rbd LIKE "%ANTOFAGASTA - TOCOPILLA%";
SELECT
nom_deprov_rbd,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia
GROUP BY nom_deprov_rbd
HAVING nom_deprov_rbd LIKE "%MAGALLANES%" OR nom_deprov_rbd LIKE "%ANTOFAGASTA - TOCOPILLA%";
SELECT
DISTINCT (gen_alu),
nom_deprov_rbd,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia
GROUP BY
nom_deprov_rbd,
gen_alu
HAVING nom_deprov_rbd LIKE "%MAGALLANES%";
SELECT
DISTINCT (gen_alu),
nom_deprov_rbd,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia
GROUP BY
nom_deprov_rbd,
gen_alu
HAVING nom_deprov_rbd LIKE "%ANTOFAGASTA - TOCOPILLA%";
SELECT
l.zona,
a.gen_alu AS genero,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia AS a
INNER JOIN localidad AS l
ON a.nom_rbd = l.nom_rbd
GROUP BY
l.zona,
a.gen_alu
HAVING l.zona IN ('NORTE GRANDE')
ORDER BY l.zona, genero;
SELECT
l.zona,
a.gen_alu AS genero,
ROUND(SUM(dias_asistidos) * 100 / SUM(dias_trabajados), 2) AS pct_asistencia
FROM asistencia AS a
INNER JOIN localidad AS l
ON a.nom_rbd = l.nom_rbd
GROUP BY
l.zona,
a.gen_alu
HAVING l.zona IN ('Zona Austral')
ORDER BY l.zona, genero;