-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3. Consultas requeridas.sql
More file actions
134 lines (112 loc) · 3.22 KB
/
Copy path3. Consultas requeridas.sql
File metadata and controls
134 lines (112 loc) · 3.22 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
-- 1
select a.nombre, a.descripcion from actividades as a
join sedes as s on s.id_sede = a.id_sede
where s.nombre = 'Sede Sur';
-- 2
select distinct s.nombre
from sedes s
join servicios serv on s.id_sede = serv.id_sede
join actividades a on s.id_sede = a.id_sede
where serv.tipo = 'gimnasio' and a.nombre = 'evento deportivo';
-- 3
select e.nombre_completo, s.telefono
from sedes s
join servicios serv on s.id_sede = serv.id_sede
join empleados e on s.persona_contacto_id = e.id_empleado
where serv.tipo in ('biblioteca', 'laboratorio');
-- 4
select a.nombre, a.descripcion
from actividades a
where a.dia_semana = 'lunes' and a.nivel_importancia > 7;
-- 5
select s.nombre, s.direccion
from sedes s
join empleados e on s.id_sede = e.id_sede
where e.dni like '%5';
-- 6
select serv.tipo, s.nombre
from servicios serv
join sedes s on serv.id_sede = s.id_sede
where serv.horario_disponibilidad = '8:00 AM - 10:00 PM';
-- 7
select*from sedes as s where id_sede not in (select a.id_sede from actividades as a
join sedes s on a.id_sede = s.id_sede);
-- 8
select distinct s.nombre
from sedes s
join servicios serv on s.id_sede = serv.id_sede
where serv.tipo in ('gimnasio', 'biblioteca');
-- 9
select s.nombre, count(e.id_empleado) as total_empleados
from sedes s
left join empleados e on s.id_sede = e.id_sede
group by s.id_sede;
-- 10
select s.nombre
from sedes s
join servicios serv on s.id_sede = serv.id_sede
where serv.capacidad_maxima > 100;
-- 11
select s.nombre, count(a.id_actividad) as total_actividades
from sedes s
join actividades a on s.id_sede = a.id_sede
group by s.id_sede
order by total_actividades desc;
-- 12
select a.nombre, s.nombre as sede
from actividades a
join sedes s on a.id_sede = s.id_sede
order by a.nivel_importancia desc;
-- 13
select e.nombre_completo
from empleados e
join sedes s on e.id_empleado = s.persona_contacto_id
join servicios serv on s.id_sede = serv.id_sede
group by s.id_sede
having count(serv.id_servicio) > 5;
-- 14
select s.nombre
from sedes s
join actividades a on s.id_sede = a.id_sede
group by s.id_sede
having avg(a.nivel_importancia) < 5;
-- 15
select s.nombre, count(serv.id_servicio) as total_laboratorios
from sedes s
join servicios serv on s.id_sede = serv.id_sede
where serv.tipo = 'laboratorio'
group by s.id_sede
order by total_laboratorios desc;
-- 16
select s.nombre
from sedes s
join servicios serv on s.id_sede = serv.id_sede
where serv.tipo in ('laboratorio', 'gimnasio')
group by s.id_sede
having count(serv.id_servicio) > 2;
-- 17
select avg(total_actividades) as promedio_actividades
from (
select count(a.id_actividad) as total_actividades
from sedes s
left join actividades a on s.id_sede = a.id_sede
group by s.id_sede
) as actividades_por_sede;
-- 18
select s.nombre
from sedes s
join actividades a on s.id_sede = a.id_sede
group by s.id_sede, a.dia_semana
having count(a.id_actividad) > 3;
-- 19
select distinct s.nombre, s.direccion
from sedes s
join servicios serv on s.id_sede = serv.id_sede
join actividades a on s.id_sede = a.id_sede
where a.nivel_importancia > 8;
-- 20
select s.nombre, count(a.id_actividad) as total_actividades, a.nombre as actividad_mas_frecuente
from sedes s
join actividades a on s.id_sede = a.id_sede
group by s.id_sede, a.nombre
order by total_actividades desc