SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Ejercicios SQL. - Vuelta Ciclista.
1
Ejercicios SQL – Vuelta Ciclista
La siguiente base de datos almacena información sobre una vuelta ciclista:
Equipo(nomequipo, director)
Ciclista(dorsal, nombre, edad, nomequipo)
Etapa(numetapa, kms, salida, llegada, dorsal)
Puerto(nompuerto, altura, categoría, pendiente, numetapa, dorsal)
Maillot(código, tipo, color, premio)
Lleva(código, numetapa, dorsal)
La clave primaria de cada relación está formada por los atributos que aparecen subrayados. La información que
contienen las relaciones anteriores se describe a continuación:
 Equipo contiene los datos de los distintos equipos: nombre (nomequipo) y nombre de su director
(director).
 Ciclista contiene los datos de los ciclistas que componen los distintos equipos: número del dorsal
(dorsal), nombre del ciclista (nombre), edad del ciclista (edad) y nombre del equipo al que pertenece
(nomequipo).
 Etapa contiene los datos de las etapas que componen la vuelta ciclista: número de la etapa (numetapa) (las
etapas se numeran consecutivamente: 1, 2, ...), kilómetros que tiene la etapa (kms), nombre de la población
de donde sale la etapa (salida), nombre de la población donde está la meta de la etapa (llegada) y
número del dorsal del ciclista que ha ganado la etapa (dorsal). Los atributos salida y llegada están
definidos sobre el mismo dominio.
 Puerto contiene los datos de los puertos de montaña que visita la vuelta ciclista: nombre del puerto
(nompuerto), altura máxima del puerto (altura), categoría del puerto: primera, especial, etc. (categoría),
porcentaje que indica la pendiente media del puerto (pendiente), número de la etapa donde se sube el
puerto (numetapa) y número del dorsal que ha ganado el puerto al pasar en primera posición (dorsal).
 Maillot contiene los datos de los premios que se otorgan mediante los distintos maillots: código del maillot
(código), clasificación que premia ese maillot: general, montaña, etc. (tipo), color de la camiseta asociada
(color) e importe del premio que corresponde al ciclista que termine la vuelta llevando el maillot (premio).
 Lleva contiene la información sobre qué ciclistas (dorsal) han llevado cada maillot (código) en cada una
de las etapas (numetapa).
Las claves ajenas se muestran en los siguientes diagramas referenciales.
Ejercicios SQL. - Vuelta Ciclista.
2
Consultas y resultados
1. Obtener el nombre y el equipo de los ciclistas menores de 30 años que hayan ganado alguna etapa.
nombre nomequipo
Bo Hamburger TVM
Erik Dekker Wordperfect
Laurent Jalabert ONCE
Mario Cipollini Mercatone Uno
Pascal Lino Amore Vita
Vladislav Bobrik Gewiss
2. Obtener el nombre y el equipo de los ciclistas mayores de 32 años que hayan ganado algún puerto.
nombre nomequipo
Massimo Podenzana Navigare
Pedro Delgado Banesto
3. Obtener los datos de las etapas que pasan por algún puerto de montaña y que tienen salida y llegada en la misma
población.
numetapa kms salida llegada dorsal
18 195 Ávila Ávila 8
4. Obtener las poblaciones que tienen la meta de alguna etapa, pero desde las que no se realiza ninguna salida.
llegada
Alicante
Alto de la Cruz de la Demanda
Alto del Naranco
Caceres
Estación de Cerler
Lagos de Covadonga
Madrid
Sierra Nevada
Valencia
Ejercicios SQL. - Vuelta Ciclista.
3
5. Obtener el nombre y el equipo de los ciclistas que han ganado alguna etapa llevando el maillot amarillo, mostrando
también el número de etapa.
nombre nomequipo numetapa
Miguel Induráin Banesto 1
6. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran puertos con altura superior a
1300 metros.
salida llegada
Andorra Estación de Cerler
Ávila Ávila
Ávila Destilerias Dyc
Igualada ANDorra
Valladolid Salamanca
7. Obtener el número de las etapas que tienen algún puerto de montaña, indicando cuántos tiene cada una de ellas.
numetapa numero_puertos
2 1
10 4
11 2
15 1
16 1
18 3
19 2
8. Obtener el nombre y la edad de los ciclistas que han llevado dos o más maillots en una misma etapa.
dorsal nombre edad
1 Miguel Induráin 32
26 Mikel Zarrabeitia 27
30 Melchor Mauri 28
9. Obtener el nombre y el equipo de los ciclistas que han llevado algún maillot o que han ganado algún puerto.
nombre nomequipo
Alessio Di Basco Amore Vita
Alex Zulle ONCE
Alfonso Gutiérrez Artiach
ArmAND de las
Cuevas
Castorama
Bruno Leali Bresciali-Refin
Claudio
Chiappucci
Carrera
Davide Cassani TVM
Dimitri Konishev Jolly Club
Eddy Seigneur Castorama
Gianni Bugno Gatorade
Giorgio Furlan Gewiss
Jean Van Poppel Lotus Festina
Jesus Montoya Banesto
Laurent Jalabert ONCE
Marco Saligari Gewiss
Mario Cipollini Mercatone Uno
Massimiliano Lelli Mercatone Uno
Massimo
Podenzana
Navigare
Melchor Mauri Banesto
Miguel Induráin Banesto
Mikel Zarrabeitia Banesto
Pedro Delgado Banesto
Per Pedersen Seguros Amaya
Stefano della
Santa
Mapei-Clas
Tony Rominger Mapei-Clas
Total : 25 filas
10. Obtener los números de las etapas que no tienen puertos de montaña.
numetapa
1
3
4
5
6
7
8
9
12
13
14
17
20
21
Total : 14 filas
Ejercicios SQL. - Vuelta Ciclista.
4
11. Obtener la edad media de los ciclistas que han ganado alguna etapa.
media_edad_ganadores
30,952380952381
12. Obtener el nombre de los puertos de montaña que tienen una altura superior a la altura media de todos los puertos.
nompuerto
Arcalis
Cerler-Circo de Ampriu
Coll de Ordino
Cruz de la Demanda
Navacerrada
Puerto de la Morcuera
Sierra Nevada
13. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran los puertos con mayor pendiente.
salida llegada
Igualada Andorra
14. Obtener el dorsal y el nombre de los ciclistas que han ganado los puertos de mayor altura.
dorsal nombre
9 Massimo Podenzana
26 Mikel Zarrabeitia
15. Obtener los datos de las etapas cuyos puertos (todos) superan los 1300 metros de altura.
numetapa kms salida llegada dorsal
2 180 Valladolid Salamanca 36
11 195 ANDorra Estación de Cerler 65
19 190 Ávila Destilerias Dyc 2
16. Obtener la edad del ciclista más joven, la del más veterano y la edad media de los ciclistas que han participado en
la vuelta.
menor_edad mayor_edad media_edad
23 37 29,89
17. Obtener el nombre del equipo y el director del ciclista que ganó la etapa más larga.
director nomequipo
Moreno Argentin Gewiss
Ejercicios SQL. - Vuelta Ciclista.
5
18. Obtener el dorsal y el nombre de los ciclistas que hayan ganado alguna etapa, mostrando el número de etapas que
han ganado.
dorsal nombre etapas_ganadas
1 Miguel Induráin 2
2 Pedro Delgado 3
4 Tony Rominger 1
5 Gert-Jan Theunisse 1
8 Jean Van Poppel 1
10 Mario Cipollini 1
12 Alessio Di Basco 2
22 Giorgio Furlan 1
27 Laurent Jalabert 2
35 Erik Dekker 1
36 Gian Matteo Fagnini 1
52 Vladislav Bobrik 1
65 Pascal Lino 1
83 Hernan Buenahora 1
86 Juan Martinez Oliver 1
93 Bo Hamburger 1
Total : 16 filas
19. Obtener el nombre de los ciclistas que pertenecen a un equipo de más de cinco ciclistas y que han ganado alguna
etapa, indicando también cuántas etapas han ganado.
dorsal nombre num_etapas_ganadas
1 Miguel Induráin 2
2 Pedro Delgado 3
4 Tony Rominger 1
5 Gert-Jan Theunisse 1
10 Mario Cipollini 1
22 Giorgio Furlan 1
36 Gian Matteo Fagnini 1
52 Vladislav Bobrik 1
83 Hernan Buenahora 1
86 Juan Martinez Oliver 1
93 Bo Hamburger 1
Total : 11 filas
20. Nombre y equipo de los ciclistas que han llevado alguna vez el maillot amarillo, indicando durante cuántas etapas lo
han llevado.
nombre nomequipo Num_veces
Alex Zulle ONCE 2
Melchor Mauri Banesto 3
Miguel Induráin Banesto 10
Mikel Zarrabeitia Banesto 2
Pedro Delgado Banesto 3
Tony Rominger Mapei-Clas 1
21. Por cada equipo, color de los maillots que han llevado sus ciclistas.
nomequipo color
Amore Vita rosa
Artiach rojo
Artiach verde
Banesto amarillo
Banesto blanco y rojo
Banesto rojo
Banesto rosa
Banesto verde
Bresciali-Refin rojo
Carrera blanco y rojo
Castorama estrellas moradas
Gatorade blanco y rojo
Gewiss rojo
Gewiss rosa
Jolly Club rojo
Lotus Festina rosa
Mapei-Clas amarillo
Mapei-Clas rojo
Mercatone Uno rosa
ONCE amarillo
ONCE verde
Seguros Amaya rosa
TVM rojo
Total : 23 filas
Ejercicios SQL. - Vuelta Ciclista.
6
22. Nombre y equipo del ganador de la vuelta (es decir, el que ha lucido el maillot amarillo en la última etapa).
nombre nomequipo
Miguel Induráin Banesto
23. Nombre de los equipos que no han llevado el maillot amarillo.
nomequipo
Amore Vita
Artiach
Bresciali-Refin
Carrera
Castorama
Euskadi
Gatorade
Gewiss
Jolly Club
Kelme
Lotus Festina
Mercatone Uno
Motorola
Navigare
PDM
Seguros Amaya
Telecom
TVM
Wordperfect
Total : 19 filas
24. Nombre y dorsal de los ciclistas mayores de 30 años que han ganado algún puerto, junto con el número de puertos
que han ganado.
dorsal nombre edad numPuertos
1 Miguel Induráin 32 1
2 Pedro Delgado 35 4
9 Massimo Podenzana 34 1
25 Gianni Bugno 32 1
25. Nombre y director de los equipos que, en alguna etapa, sus ciclistas han llevado tres o más maillots.
nomequipo director
Banesto Miguel Echevarria
26. Nombre de los equipos que sólo tienen ciclistas menores de 28 años.
nomequipo
Euskadi
27. Dorsal y nombre del ciclista que ha llevado el maillot amarillo durante más etapas.
dorsal nombre
1 Miguel Induráin
Ejercicios SQL. - Vuelta Ciclista.
7
Soluciones a las consultas SQL
1. Nombre y el equipo de aquellos corredores menores de 30 años que han ganado alguna etapa.
 Una forma:
SELECT DISTINCT nombre, nomequipo
FROM Ciclista C, Etapa E
WHERE edad < 30 AND C.dorsal=E.dorsal;
 Otra forma:
SELECT DISTINCT nombre, nomequipo
FROM Ciclista
WHERE edad < 30 AND dorsal IN ( SELECT DISTINCT dorsal FROM Etapa);
2. Nombre y equipo de los corredores mayores de 35 años que han ganado algún puerto.
 Una forma:
SELECT DISTINCT nombre, nomequipo
FROM Ciclista C, Puerto P
WHERE C.dorsal=P.dorsal AND edad>32;
 Otra forma:
SELECT DISTINCT nombre, nomequipo
FROM Ciclista
WHERE edad>32 AND dorsal IN (SELECT DISTINCT dorsal FROM Puerto);
3. Datos de las etapas que pasan por algún puerto de montaña y que tienen salida y llegada en la misma población.
 Una forma:
SELECT DISTINCT E.numetapa, E.kms, E.salida, E.llegada, E.dorsal
FROM Etapa E, Puerto P
WHERE E.numetapa = P.numetapa AND E.salida = E.llegada;
 Otra forma:
SELECT *
FROM Etapa
WHERE salida=llegada AND numetapa IN ( SELECT numetapa FROM Puerto );
4. Poblaciones que tienen la meta de alguna etapa, pero desde las que no se realiza ninguna salida.
 Con MINUS (válida para Oracle, no para Access ni Base):
SELECT llegada FROM Etapa
MINUS
SELECT salida FROM Etapa;
 Con NOT IN (también es válida con <>ALL):
SELECT DISTINCT llegada
FROM Etapa
WHERE llegada NOT IN (SELECT salida FROM Etapa);
Ejercicios SQL. - Vuelta Ciclista.
8
5. Nombre y el equipo de los ciclistas que han ganado alguna etapa llevando el maillot amarillo, mostrando también el
número de etapa.
SELECT C.nombre, C.nomequipo, E.numetapa
FROM Ciclista C, Etapa E, Lleva LL, Maillot M
WHERE E.dorsal=LL.dorsal AND E.numetapa=LL.numetapa
AND LL.código=M.código AND M.color= 'amarillo' AND E.dorsal=C.dorsal;
6. Poblaciones de salida y de llegada de las etapas donde se encuentran puertos con altura superior a 1300 metros.
SELECT DISTINCT salida, llegada
FROM Etapa E, Puerto P
WHERE E.numetapa = P.numetapa AND altura>1300 ;
7. Número de las etapas que tienen algún puerto de montaña, indicando cuántos tiene cada una de ellas.
SELECT numetapa, COUNT(*) AS numero_puertos
FROM Puerto
GROUP BY numetapa ;
8. Nombre y edad de los ciclistas que han llevado dos o más maillots en una misma etapa.
SELECT DISTINCT LL.dorsal, C.nombre, C.edad
FROM Ciclista C, Lleva LL
WHERE C.dorsal=LL.dorsal
GROUP BY LL.numetapa, LL.dorsal, C.nombre, C.edad
HAVING COUNT(*)>=2;
9. Obtener el nombre y el equipo de los ciclistas que han llevado algún maillot o que han ganado algún puerto.
 Una forma (para Oracle):
SELECT C.nombre, C.nomequipo
FROM Ciclista C, Lleva LL
WHERE C.dorsal=LL.dorsal
UNION
SELECT C.nombre,C.nomequipo
FROM Ciclista C, Puerto P
WHERE C.dorsal=P.dorsal;
 Y otra forma (para Access y Base):
SELECT nombre, nomequipo
FROM Ciclista
WHERE dorsal IN (SELECT dorsal FROM Lleva)
OR dorsal IN (SELECT dorsal FROM Puerto) ;
10. Obtener los números de las etapas que no tienen puertos de montaña.
 Una forma (para Oracle):
SELECT numetapa FROM Etapa
MINUS
SELECT numetapa FROM Puerto;
Ejercicios SQL. - Vuelta Ciclista.
9
 Otra forma (para Access y Base):
SELECT numetapa
FROM Etapa
WHERE numetapa NOT IN (SELECT numetapa FROM Puerto);
11. Obtener la edad media de los ciclistas que han ganado alguna etapa.
SELECT AVG(C.edad) AS media_edad_ganadores
FROM Ciclista C, Etapa E
WHERE C.dorsal = E.dorsal ;
12. Obtener el nombre de los puertos de montaña que tienen una altura superior a la altura media de todos los puertos.
SELECT nompuerto
FROM Puerto
WHERE altura > ( SELECT AVG(altura) FROM Puerto ) ;
13. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran los puertos con mayor
pendiente.
 Una forma:
SELECT salida, llegada
FROM Etapa E, Puerto P
WHERE E.numetapa = P.numetapa
AND P.pendiente = ( SELECT MAX(pendiente) FROM Puerto ) ;
 Otra forma:
SELECT DISTINCT E.salida, E.llegada
FROM Etapa E, Puerto P
WHERE E.numetapa = P.numetapa
AND P.pendiente >= ALL( SELECT pendiente FROM Puerto ) ;
14. Obtener el dorsal y el nombre de los ciclistas que han ganado los puertos de mayor altura.
 Una forma:
SELECT DISTINCT C.dorsal, C.nombre
FROM Ciclista C, Puerto P
WHERE C.dorsal = P.dorsal
AND P.altura = ( SELECT MAX(altura) FROM Puerto) ;
 Otra forma:
SELECT DISTINCT C.dorsal,C.nombre
FROM Puerto P, Ciclista C
WHERE P.dorsal=C.dorsal
AND P.altura >= ALL(SELECT altura FROM Puerto) ;
15. Obtener los datos de las etapas cuyos puertos (todos) superan los 1300 metros de altura.
 Con la diferencia (para Oracle)::
SELECT E.*
FROM Puerto P, Etapa E
WHERE P.numetapa=E.numetapa AND P.altura>1300
Ejercicios SQL. - Vuelta Ciclista.
10
MINUS
SELECT E.*
FROM Puerto P, Etapa E
WHERE P.numetapa=E.numetapa AND P.altura<=1300 ;
 Con el NOT IN (para Access y Base):
SELECT DISTINCT E.*
FROM Puerto P, Etapa E
WHERE P.numetapa=E.numetapa AND P.altura>1300
AND E.numetapa NOT IN ( SELECT numetapa FROM Puerto
WHERE altura<=1300) ;
16. Obtener la edad del ciclista más joven, la del más veterano y la media de edad de los ciclistas que han participado
en la vuelta.
SELECT MIN(edad) AS menor_edad, MAX(edad) AS mayor_edad, AVG(edad) AS media_edad
FROM Ciclista ;
17. Obtener el nombre del equipo y el director del ciclista que ha ganado la etapa más larga.
Una forma:
SELECT director, Q.nomequipo
FROM Etapa E, Ciclista C, Equipo Q
WHERE E.dorsal = C.dorsal AND C.nomequipo = Q.nomequipo
AND kms = (SELECT MAX(kms) FROM Etapa);
 Y otra forma:
SELECT TOP(1) director, Q.nomequipo
FROM Etapa E, Ciclista C, Equipo Q
WHERE E.dorsal = C.dorsal
AND C.nomequipo = Q.nomequipo
ORDER BY kms DESC;
18. Obtener el dorsal y el nombre de los ciclistas que hayan ganado alguna etapa, mostrando también el número de
etapas que han ganado.
SELECT E.dorsal, C.nombre, COUNT(E.dorsal) AS etapas_ganadas
FROM Etapa E, Ciclista C
WHERE C.dorsal=E.dorsal
GROUP BY E.dorsal, C.nombre;
19. Obtener el nombre de los ciclistas que pertenecen a un equipo de más de cinco ciclistas y que han ganado alguna
etapa, indicando también cuántas etapas han ganado.
SELECT C.dorsal , C.nombre, COUNT(*) AS num_etapas_ganadas
FROM Ciclista C, Etapa E
WHERE C.dorsal=E.dorsal
AND C.nomequipo IN ( SELECT nomequipo
FROM Ciclista
GROUP BY nomequipo
HAVING COUNT(*)>5 )
GROUP BY C.dorsal, C.nombre ;
( La cláusula TOP especifica que sólo se devolverá el
primer conjunto de filas del resultado de la
consulta.TOP(1) mostrará la primera fila, TOP(10)
mostrará las 10 primeras filas )
Ejercicios SQL. - Vuelta Ciclista.
11
20. Nombre y equipo de los ciclistas que han llevado alguna vez el maillot amarillo, indicando durante cuántas etapas lo
han llevado.
SELECT DISTINCT C.nombre, C.nomequipo, COUNT (*) AS Num_veces
FROM Ciclista C, Lleva L, Maillot M
WHERE C.dorsal=L.dorsal AND L.código=M.código AND color= 'amarillo'
GROUP BY C.nombre, C.nomequipo;
21. Por cada equipo, color de los maillots que han llevado sus ciclistas.
SELECT nomequipo, color
FROM Maillot M, Lleva L, Ciclista C
WHERE M.código=L.código AND L.dorsal=C.dorsal
GROUP BY nomequipo,color;
22. Nombre y equipo del ganador de la vuelta (es decir, el que ha lucido el maillot amarillo en la última etapa).
SELECT C.nombre, C.nomequipo
FROM Ciclista AS C, Lleva AS L, Maillot AS M
WHERE C.dorsal = L.dorsal AND M.código = L.código AND color='amarillo'
AND L.numetapa = (SELECT MAX(numetapa) FROM Etapa);
23. Nombre de los equipos que no han llevado el maillot amarillo.
SELECT DISTINCT nomequipo
FROM Equipo
WHERE nomequipo NOT IN ( SELECT DISTINCT nomequipo
FROM Ciclista C, Lleva L, Maillot M
WHERE C.dorsal=L.dorsal AND L.código=M.código
AND color='amarillo' );
24. Nombre y dorsal de los ciclistas mayores de 30 años que han ganado algún puerto, junto con el número de puertos
que han ganado.
SELECT C.dorsal, nombre, edad, COUNT(*) AS numPuertos
FROM Ciclista AS C, Puerto AS P
WHERE C.dorsal=P.dorsal AND edad>30
GROUP BY C.dorsal, nombre, edad;
25. Nombre y director de los equipos que, en alguna etapa, sus ciclistas han llevado tres o más maillots.
SELECT DISTINCT E.nomequipo, E.director
FROM Ciclista AS C, Equipo AS E, Lleva AS L
WHERE C.dorsal=L.dorsal AND C.nomequipo=E.nomequipo
GROUP BY L.numetapa, E.nomequipo, E.director
HAVING COUNT(*)>=3;
26. Nombre de los equipos que sólo tienen ciclistas menores de 28 años.
SELECT nomequipo
FROM Equipo
WHERE nomequipo IN (SELECT nomequipo FROM Ciclista WHERE edad <28)
AND nomequipo NOT IN (SELECT nomequipo FROM Ciclista WHERE edad>=28);
Ejercicios SQL. - Vuelta Ciclista.
12
27. Dorsal y nombre del ciclista que ha llevado el maillot amarillo durante más etapas.
 Con ALL:
SELECT C.dorsal, C.nombre
FROM Ciclista AS C, Lleva AS L, Maillot AS M
WHERE C.dorsal=L.dorsal AND M.código=L.código AND M.color='amarillo'
GROUP BY C.dorsal, C.nombre
HAVING COUNT(*) >= ALL ( SELECT COUNT(*) AS veces
FROM Lleva LL, Maillot MA
WHERE LL.código = MA.código AND MA.color='amarillo'
GROUP BY LL.dorsal );
 Con TOP :
SELECT TOP(1) dorsal, nombre
FROM Ciclista AS C, Lleva AS L, Maillot AS M
WHERE C.dorsal=L.dorsal AND M.código=L.código AND M.color='amarillo'
GROUP BY C.dorsal, C.nombre
ORDER BY COUNT(*) DESC;

Más contenido relacionado

La actualidad más candente

Ejercicios de subnetting
Ejercicios de subnetting Ejercicios de subnetting
Ejercicios de subnetting Marcelo Herrera
 
Tutorial voz ip packet tracer
Tutorial voz ip packet tracerTutorial voz ip packet tracer
Tutorial voz ip packet tracerJosé Guerrero
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del routeryoes1053
 
Examen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoExamen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoDaniiel Campos
 
Proceso de arranque de un router
Proceso de arranque de un routerProceso de arranque de un router
Proceso de arranque de un routerAna Ivonne Val
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de softwareJohn Fonseca
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad IILuis Caiza
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Jazmin Glez.
 
Contrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareContrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareGlobal Negotiator
 
Preguntas de introducción al desarrollo del software
Preguntas de introducción al desarrollo del softwarePreguntas de introducción al desarrollo del software
Preguntas de introducción al desarrollo del softwareAndrezMendozaMelendr
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaAngel Vázquez Patiño
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelaspineda2
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenadosVicente Alberca
 
Estructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xEstructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xSophia Galarraga
 

La actualidad más candente (20)

Ejercicios de subnetting
Ejercicios de subnetting Ejercicios de subnetting
Ejercicios de subnetting
 
Tutorial voz ip packet tracer
Tutorial voz ip packet tracerTutorial voz ip packet tracer
Tutorial voz ip packet tracer
 
Ejercicios del 1 al 9
Ejercicios del 1 al 9Ejercicios del 1 al 9
Ejercicios del 1 al 9
 
Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Configuracion y direccionamiento del router
Configuracion y direccionamiento del routerConfiguracion y direccionamiento del router
Configuracion y direccionamiento del router
 
Ejercicios normalizacion
Ejercicios normalizacionEjercicios normalizacion
Ejercicios normalizacion
 
Examen Capitulo 6 de Cisco
Examen Capitulo 6 de CiscoExamen Capitulo 6 de Cisco
Examen Capitulo 6 de Cisco
 
Proceso de arranque de un router
Proceso de arranque de un routerProceso de arranque de un router
Proceso de arranque de un router
 
Ejemplo pruebas de software
Ejemplo pruebas de softwareEjemplo pruebas de software
Ejemplo pruebas de software
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
juego-utilizando-sockets
juego-utilizando-socketsjuego-utilizando-sockets
juego-utilizando-sockets
 
Contrato de Desarrollo de Software
Contrato de Desarrollo de SoftwareContrato de Desarrollo de Software
Contrato de Desarrollo de Software
 
Preguntas de introducción al desarrollo del software
Preguntas de introducción al desarrollo del softwarePreguntas de introducción al desarrollo del software
Preguntas de introducción al desarrollo del software
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Programación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en javaProgramación 3: listas y conjuntos en java
Programación 3: listas y conjuntos en java
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Estructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+xEstructura+del+sistema+mac+os+x
Estructura+del+sistema+mac+os+x
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 

Similar a Consultas vuelta ciclista (soluciones)

Similar a Consultas vuelta ciclista (soluciones) (9)

Reglamento de-competiciones-carreras-por-montana-fedme-2012
Reglamento de-competiciones-carreras-por-montana-fedme-2012Reglamento de-competiciones-carreras-por-montana-fedme-2012
Reglamento de-competiciones-carreras-por-montana-fedme-2012
 
Carreras orientación
 Carreras orientación Carreras orientación
Carreras orientación
 
Reglamento FEMPA de carreras por montaña 2014
Reglamento FEMPA de carreras por montaña 2014Reglamento FEMPA de carreras por montaña 2014
Reglamento FEMPA de carreras por montaña 2014
 
Patinaje de velocidad
Patinaje de velocidadPatinaje de velocidad
Patinaje de velocidad
 
Patinaje
PatinajePatinaje
Patinaje
 
Trabajo sobre motogp
Trabajo sobre motogpTrabajo sobre motogp
Trabajo sobre motogp
 
Tema 20 las pruebas combinadas
Tema 20   las pruebas combinadasTema 20   las pruebas combinadas
Tema 20 las pruebas combinadas
 
Reglamento carreras por montaña FEMPA 2014
Reglamento carreras por montaña FEMPA 2014Reglamento carreras por montaña FEMPA 2014
Reglamento carreras por montaña FEMPA 2014
 
Trabajo e.f
Trabajo e.fTrabajo e.f
Trabajo e.f
 

Último

SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxJairReyna1
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresSegundo Silva Maguiña
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 

Último (20)

SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
NOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptxNOM-002-STPS-2010, combate contra incendio.pptx
NOM-002-STPS-2010, combate contra incendio.pptx
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Físicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y VectoresFísicas 1: Ecuaciones Dimensionales y Vectores
Físicas 1: Ecuaciones Dimensionales y Vectores
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 

Consultas vuelta ciclista (soluciones)

  • 1. Ejercicios SQL. - Vuelta Ciclista. 1 Ejercicios SQL – Vuelta Ciclista La siguiente base de datos almacena información sobre una vuelta ciclista: Equipo(nomequipo, director) Ciclista(dorsal, nombre, edad, nomequipo) Etapa(numetapa, kms, salida, llegada, dorsal) Puerto(nompuerto, altura, categoría, pendiente, numetapa, dorsal) Maillot(código, tipo, color, premio) Lleva(código, numetapa, dorsal) La clave primaria de cada relación está formada por los atributos que aparecen subrayados. La información que contienen las relaciones anteriores se describe a continuación:  Equipo contiene los datos de los distintos equipos: nombre (nomequipo) y nombre de su director (director).  Ciclista contiene los datos de los ciclistas que componen los distintos equipos: número del dorsal (dorsal), nombre del ciclista (nombre), edad del ciclista (edad) y nombre del equipo al que pertenece (nomequipo).  Etapa contiene los datos de las etapas que componen la vuelta ciclista: número de la etapa (numetapa) (las etapas se numeran consecutivamente: 1, 2, ...), kilómetros que tiene la etapa (kms), nombre de la población de donde sale la etapa (salida), nombre de la población donde está la meta de la etapa (llegada) y número del dorsal del ciclista que ha ganado la etapa (dorsal). Los atributos salida y llegada están definidos sobre el mismo dominio.  Puerto contiene los datos de los puertos de montaña que visita la vuelta ciclista: nombre del puerto (nompuerto), altura máxima del puerto (altura), categoría del puerto: primera, especial, etc. (categoría), porcentaje que indica la pendiente media del puerto (pendiente), número de la etapa donde se sube el puerto (numetapa) y número del dorsal que ha ganado el puerto al pasar en primera posición (dorsal).  Maillot contiene los datos de los premios que se otorgan mediante los distintos maillots: código del maillot (código), clasificación que premia ese maillot: general, montaña, etc. (tipo), color de la camiseta asociada (color) e importe del premio que corresponde al ciclista que termine la vuelta llevando el maillot (premio).  Lleva contiene la información sobre qué ciclistas (dorsal) han llevado cada maillot (código) en cada una de las etapas (numetapa). Las claves ajenas se muestran en los siguientes diagramas referenciales.
  • 2. Ejercicios SQL. - Vuelta Ciclista. 2 Consultas y resultados 1. Obtener el nombre y el equipo de los ciclistas menores de 30 años que hayan ganado alguna etapa. nombre nomequipo Bo Hamburger TVM Erik Dekker Wordperfect Laurent Jalabert ONCE Mario Cipollini Mercatone Uno Pascal Lino Amore Vita Vladislav Bobrik Gewiss 2. Obtener el nombre y el equipo de los ciclistas mayores de 32 años que hayan ganado algún puerto. nombre nomequipo Massimo Podenzana Navigare Pedro Delgado Banesto 3. Obtener los datos de las etapas que pasan por algún puerto de montaña y que tienen salida y llegada en la misma población. numetapa kms salida llegada dorsal 18 195 Ávila Ávila 8 4. Obtener las poblaciones que tienen la meta de alguna etapa, pero desde las que no se realiza ninguna salida. llegada Alicante Alto de la Cruz de la Demanda Alto del Naranco Caceres Estación de Cerler Lagos de Covadonga Madrid Sierra Nevada Valencia
  • 3. Ejercicios SQL. - Vuelta Ciclista. 3 5. Obtener el nombre y el equipo de los ciclistas que han ganado alguna etapa llevando el maillot amarillo, mostrando también el número de etapa. nombre nomequipo numetapa Miguel Induráin Banesto 1 6. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran puertos con altura superior a 1300 metros. salida llegada Andorra Estación de Cerler Ávila Ávila Ávila Destilerias Dyc Igualada ANDorra Valladolid Salamanca 7. Obtener el número de las etapas que tienen algún puerto de montaña, indicando cuántos tiene cada una de ellas. numetapa numero_puertos 2 1 10 4 11 2 15 1 16 1 18 3 19 2 8. Obtener el nombre y la edad de los ciclistas que han llevado dos o más maillots en una misma etapa. dorsal nombre edad 1 Miguel Induráin 32 26 Mikel Zarrabeitia 27 30 Melchor Mauri 28 9. Obtener el nombre y el equipo de los ciclistas que han llevado algún maillot o que han ganado algún puerto. nombre nomequipo Alessio Di Basco Amore Vita Alex Zulle ONCE Alfonso Gutiérrez Artiach ArmAND de las Cuevas Castorama Bruno Leali Bresciali-Refin Claudio Chiappucci Carrera Davide Cassani TVM Dimitri Konishev Jolly Club Eddy Seigneur Castorama Gianni Bugno Gatorade Giorgio Furlan Gewiss Jean Van Poppel Lotus Festina Jesus Montoya Banesto Laurent Jalabert ONCE Marco Saligari Gewiss Mario Cipollini Mercatone Uno Massimiliano Lelli Mercatone Uno Massimo Podenzana Navigare Melchor Mauri Banesto Miguel Induráin Banesto Mikel Zarrabeitia Banesto Pedro Delgado Banesto Per Pedersen Seguros Amaya Stefano della Santa Mapei-Clas Tony Rominger Mapei-Clas Total : 25 filas 10. Obtener los números de las etapas que no tienen puertos de montaña. numetapa 1 3 4 5 6 7 8 9 12 13 14 17 20 21 Total : 14 filas
  • 4. Ejercicios SQL. - Vuelta Ciclista. 4 11. Obtener la edad media de los ciclistas que han ganado alguna etapa. media_edad_ganadores 30,952380952381 12. Obtener el nombre de los puertos de montaña que tienen una altura superior a la altura media de todos los puertos. nompuerto Arcalis Cerler-Circo de Ampriu Coll de Ordino Cruz de la Demanda Navacerrada Puerto de la Morcuera Sierra Nevada 13. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran los puertos con mayor pendiente. salida llegada Igualada Andorra 14. Obtener el dorsal y el nombre de los ciclistas que han ganado los puertos de mayor altura. dorsal nombre 9 Massimo Podenzana 26 Mikel Zarrabeitia 15. Obtener los datos de las etapas cuyos puertos (todos) superan los 1300 metros de altura. numetapa kms salida llegada dorsal 2 180 Valladolid Salamanca 36 11 195 ANDorra Estación de Cerler 65 19 190 Ávila Destilerias Dyc 2 16. Obtener la edad del ciclista más joven, la del más veterano y la edad media de los ciclistas que han participado en la vuelta. menor_edad mayor_edad media_edad 23 37 29,89 17. Obtener el nombre del equipo y el director del ciclista que ganó la etapa más larga. director nomequipo Moreno Argentin Gewiss
  • 5. Ejercicios SQL. - Vuelta Ciclista. 5 18. Obtener el dorsal y el nombre de los ciclistas que hayan ganado alguna etapa, mostrando el número de etapas que han ganado. dorsal nombre etapas_ganadas 1 Miguel Induráin 2 2 Pedro Delgado 3 4 Tony Rominger 1 5 Gert-Jan Theunisse 1 8 Jean Van Poppel 1 10 Mario Cipollini 1 12 Alessio Di Basco 2 22 Giorgio Furlan 1 27 Laurent Jalabert 2 35 Erik Dekker 1 36 Gian Matteo Fagnini 1 52 Vladislav Bobrik 1 65 Pascal Lino 1 83 Hernan Buenahora 1 86 Juan Martinez Oliver 1 93 Bo Hamburger 1 Total : 16 filas 19. Obtener el nombre de los ciclistas que pertenecen a un equipo de más de cinco ciclistas y que han ganado alguna etapa, indicando también cuántas etapas han ganado. dorsal nombre num_etapas_ganadas 1 Miguel Induráin 2 2 Pedro Delgado 3 4 Tony Rominger 1 5 Gert-Jan Theunisse 1 10 Mario Cipollini 1 22 Giorgio Furlan 1 36 Gian Matteo Fagnini 1 52 Vladislav Bobrik 1 83 Hernan Buenahora 1 86 Juan Martinez Oliver 1 93 Bo Hamburger 1 Total : 11 filas 20. Nombre y equipo de los ciclistas que han llevado alguna vez el maillot amarillo, indicando durante cuántas etapas lo han llevado. nombre nomequipo Num_veces Alex Zulle ONCE 2 Melchor Mauri Banesto 3 Miguel Induráin Banesto 10 Mikel Zarrabeitia Banesto 2 Pedro Delgado Banesto 3 Tony Rominger Mapei-Clas 1 21. Por cada equipo, color de los maillots que han llevado sus ciclistas. nomequipo color Amore Vita rosa Artiach rojo Artiach verde Banesto amarillo Banesto blanco y rojo Banesto rojo Banesto rosa Banesto verde Bresciali-Refin rojo Carrera blanco y rojo Castorama estrellas moradas Gatorade blanco y rojo Gewiss rojo Gewiss rosa Jolly Club rojo Lotus Festina rosa Mapei-Clas amarillo Mapei-Clas rojo Mercatone Uno rosa ONCE amarillo ONCE verde Seguros Amaya rosa TVM rojo Total : 23 filas
  • 6. Ejercicios SQL. - Vuelta Ciclista. 6 22. Nombre y equipo del ganador de la vuelta (es decir, el que ha lucido el maillot amarillo en la última etapa). nombre nomequipo Miguel Induráin Banesto 23. Nombre de los equipos que no han llevado el maillot amarillo. nomequipo Amore Vita Artiach Bresciali-Refin Carrera Castorama Euskadi Gatorade Gewiss Jolly Club Kelme Lotus Festina Mercatone Uno Motorola Navigare PDM Seguros Amaya Telecom TVM Wordperfect Total : 19 filas 24. Nombre y dorsal de los ciclistas mayores de 30 años que han ganado algún puerto, junto con el número de puertos que han ganado. dorsal nombre edad numPuertos 1 Miguel Induráin 32 1 2 Pedro Delgado 35 4 9 Massimo Podenzana 34 1 25 Gianni Bugno 32 1 25. Nombre y director de los equipos que, en alguna etapa, sus ciclistas han llevado tres o más maillots. nomequipo director Banesto Miguel Echevarria 26. Nombre de los equipos que sólo tienen ciclistas menores de 28 años. nomequipo Euskadi 27. Dorsal y nombre del ciclista que ha llevado el maillot amarillo durante más etapas. dorsal nombre 1 Miguel Induráin
  • 7. Ejercicios SQL. - Vuelta Ciclista. 7 Soluciones a las consultas SQL 1. Nombre y el equipo de aquellos corredores menores de 30 años que han ganado alguna etapa.  Una forma: SELECT DISTINCT nombre, nomequipo FROM Ciclista C, Etapa E WHERE edad < 30 AND C.dorsal=E.dorsal;  Otra forma: SELECT DISTINCT nombre, nomequipo FROM Ciclista WHERE edad < 30 AND dorsal IN ( SELECT DISTINCT dorsal FROM Etapa); 2. Nombre y equipo de los corredores mayores de 35 años que han ganado algún puerto.  Una forma: SELECT DISTINCT nombre, nomequipo FROM Ciclista C, Puerto P WHERE C.dorsal=P.dorsal AND edad>32;  Otra forma: SELECT DISTINCT nombre, nomequipo FROM Ciclista WHERE edad>32 AND dorsal IN (SELECT DISTINCT dorsal FROM Puerto); 3. Datos de las etapas que pasan por algún puerto de montaña y que tienen salida y llegada en la misma población.  Una forma: SELECT DISTINCT E.numetapa, E.kms, E.salida, E.llegada, E.dorsal FROM Etapa E, Puerto P WHERE E.numetapa = P.numetapa AND E.salida = E.llegada;  Otra forma: SELECT * FROM Etapa WHERE salida=llegada AND numetapa IN ( SELECT numetapa FROM Puerto ); 4. Poblaciones que tienen la meta de alguna etapa, pero desde las que no se realiza ninguna salida.  Con MINUS (válida para Oracle, no para Access ni Base): SELECT llegada FROM Etapa MINUS SELECT salida FROM Etapa;  Con NOT IN (también es válida con <>ALL): SELECT DISTINCT llegada FROM Etapa WHERE llegada NOT IN (SELECT salida FROM Etapa);
  • 8. Ejercicios SQL. - Vuelta Ciclista. 8 5. Nombre y el equipo de los ciclistas que han ganado alguna etapa llevando el maillot amarillo, mostrando también el número de etapa. SELECT C.nombre, C.nomequipo, E.numetapa FROM Ciclista C, Etapa E, Lleva LL, Maillot M WHERE E.dorsal=LL.dorsal AND E.numetapa=LL.numetapa AND LL.código=M.código AND M.color= 'amarillo' AND E.dorsal=C.dorsal; 6. Poblaciones de salida y de llegada de las etapas donde se encuentran puertos con altura superior a 1300 metros. SELECT DISTINCT salida, llegada FROM Etapa E, Puerto P WHERE E.numetapa = P.numetapa AND altura>1300 ; 7. Número de las etapas que tienen algún puerto de montaña, indicando cuántos tiene cada una de ellas. SELECT numetapa, COUNT(*) AS numero_puertos FROM Puerto GROUP BY numetapa ; 8. Nombre y edad de los ciclistas que han llevado dos o más maillots en una misma etapa. SELECT DISTINCT LL.dorsal, C.nombre, C.edad FROM Ciclista C, Lleva LL WHERE C.dorsal=LL.dorsal GROUP BY LL.numetapa, LL.dorsal, C.nombre, C.edad HAVING COUNT(*)>=2; 9. Obtener el nombre y el equipo de los ciclistas que han llevado algún maillot o que han ganado algún puerto.  Una forma (para Oracle): SELECT C.nombre, C.nomequipo FROM Ciclista C, Lleva LL WHERE C.dorsal=LL.dorsal UNION SELECT C.nombre,C.nomequipo FROM Ciclista C, Puerto P WHERE C.dorsal=P.dorsal;  Y otra forma (para Access y Base): SELECT nombre, nomequipo FROM Ciclista WHERE dorsal IN (SELECT dorsal FROM Lleva) OR dorsal IN (SELECT dorsal FROM Puerto) ; 10. Obtener los números de las etapas que no tienen puertos de montaña.  Una forma (para Oracle): SELECT numetapa FROM Etapa MINUS SELECT numetapa FROM Puerto;
  • 9. Ejercicios SQL. - Vuelta Ciclista. 9  Otra forma (para Access y Base): SELECT numetapa FROM Etapa WHERE numetapa NOT IN (SELECT numetapa FROM Puerto); 11. Obtener la edad media de los ciclistas que han ganado alguna etapa. SELECT AVG(C.edad) AS media_edad_ganadores FROM Ciclista C, Etapa E WHERE C.dorsal = E.dorsal ; 12. Obtener el nombre de los puertos de montaña que tienen una altura superior a la altura media de todos los puertos. SELECT nompuerto FROM Puerto WHERE altura > ( SELECT AVG(altura) FROM Puerto ) ; 13. Obtener las poblaciones de salida y de llegada de las etapas donde se encuentran los puertos con mayor pendiente.  Una forma: SELECT salida, llegada FROM Etapa E, Puerto P WHERE E.numetapa = P.numetapa AND P.pendiente = ( SELECT MAX(pendiente) FROM Puerto ) ;  Otra forma: SELECT DISTINCT E.salida, E.llegada FROM Etapa E, Puerto P WHERE E.numetapa = P.numetapa AND P.pendiente >= ALL( SELECT pendiente FROM Puerto ) ; 14. Obtener el dorsal y el nombre de los ciclistas que han ganado los puertos de mayor altura.  Una forma: SELECT DISTINCT C.dorsal, C.nombre FROM Ciclista C, Puerto P WHERE C.dorsal = P.dorsal AND P.altura = ( SELECT MAX(altura) FROM Puerto) ;  Otra forma: SELECT DISTINCT C.dorsal,C.nombre FROM Puerto P, Ciclista C WHERE P.dorsal=C.dorsal AND P.altura >= ALL(SELECT altura FROM Puerto) ; 15. Obtener los datos de las etapas cuyos puertos (todos) superan los 1300 metros de altura.  Con la diferencia (para Oracle):: SELECT E.* FROM Puerto P, Etapa E WHERE P.numetapa=E.numetapa AND P.altura>1300
  • 10. Ejercicios SQL. - Vuelta Ciclista. 10 MINUS SELECT E.* FROM Puerto P, Etapa E WHERE P.numetapa=E.numetapa AND P.altura<=1300 ;  Con el NOT IN (para Access y Base): SELECT DISTINCT E.* FROM Puerto P, Etapa E WHERE P.numetapa=E.numetapa AND P.altura>1300 AND E.numetapa NOT IN ( SELECT numetapa FROM Puerto WHERE altura<=1300) ; 16. Obtener la edad del ciclista más joven, la del más veterano y la media de edad de los ciclistas que han participado en la vuelta. SELECT MIN(edad) AS menor_edad, MAX(edad) AS mayor_edad, AVG(edad) AS media_edad FROM Ciclista ; 17. Obtener el nombre del equipo y el director del ciclista que ha ganado la etapa más larga. Una forma: SELECT director, Q.nomequipo FROM Etapa E, Ciclista C, Equipo Q WHERE E.dorsal = C.dorsal AND C.nomequipo = Q.nomequipo AND kms = (SELECT MAX(kms) FROM Etapa);  Y otra forma: SELECT TOP(1) director, Q.nomequipo FROM Etapa E, Ciclista C, Equipo Q WHERE E.dorsal = C.dorsal AND C.nomequipo = Q.nomequipo ORDER BY kms DESC; 18. Obtener el dorsal y el nombre de los ciclistas que hayan ganado alguna etapa, mostrando también el número de etapas que han ganado. SELECT E.dorsal, C.nombre, COUNT(E.dorsal) AS etapas_ganadas FROM Etapa E, Ciclista C WHERE C.dorsal=E.dorsal GROUP BY E.dorsal, C.nombre; 19. Obtener el nombre de los ciclistas que pertenecen a un equipo de más de cinco ciclistas y que han ganado alguna etapa, indicando también cuántas etapas han ganado. SELECT C.dorsal , C.nombre, COUNT(*) AS num_etapas_ganadas FROM Ciclista C, Etapa E WHERE C.dorsal=E.dorsal AND C.nomequipo IN ( SELECT nomequipo FROM Ciclista GROUP BY nomequipo HAVING COUNT(*)>5 ) GROUP BY C.dorsal, C.nombre ; ( La cláusula TOP especifica que sólo se devolverá el primer conjunto de filas del resultado de la consulta.TOP(1) mostrará la primera fila, TOP(10) mostrará las 10 primeras filas )
  • 11. Ejercicios SQL. - Vuelta Ciclista. 11 20. Nombre y equipo de los ciclistas que han llevado alguna vez el maillot amarillo, indicando durante cuántas etapas lo han llevado. SELECT DISTINCT C.nombre, C.nomequipo, COUNT (*) AS Num_veces FROM Ciclista C, Lleva L, Maillot M WHERE C.dorsal=L.dorsal AND L.código=M.código AND color= 'amarillo' GROUP BY C.nombre, C.nomequipo; 21. Por cada equipo, color de los maillots que han llevado sus ciclistas. SELECT nomequipo, color FROM Maillot M, Lleva L, Ciclista C WHERE M.código=L.código AND L.dorsal=C.dorsal GROUP BY nomequipo,color; 22. Nombre y equipo del ganador de la vuelta (es decir, el que ha lucido el maillot amarillo en la última etapa). SELECT C.nombre, C.nomequipo FROM Ciclista AS C, Lleva AS L, Maillot AS M WHERE C.dorsal = L.dorsal AND M.código = L.código AND color='amarillo' AND L.numetapa = (SELECT MAX(numetapa) FROM Etapa); 23. Nombre de los equipos que no han llevado el maillot amarillo. SELECT DISTINCT nomequipo FROM Equipo WHERE nomequipo NOT IN ( SELECT DISTINCT nomequipo FROM Ciclista C, Lleva L, Maillot M WHERE C.dorsal=L.dorsal AND L.código=M.código AND color='amarillo' ); 24. Nombre y dorsal de los ciclistas mayores de 30 años que han ganado algún puerto, junto con el número de puertos que han ganado. SELECT C.dorsal, nombre, edad, COUNT(*) AS numPuertos FROM Ciclista AS C, Puerto AS P WHERE C.dorsal=P.dorsal AND edad>30 GROUP BY C.dorsal, nombre, edad; 25. Nombre y director de los equipos que, en alguna etapa, sus ciclistas han llevado tres o más maillots. SELECT DISTINCT E.nomequipo, E.director FROM Ciclista AS C, Equipo AS E, Lleva AS L WHERE C.dorsal=L.dorsal AND C.nomequipo=E.nomequipo GROUP BY L.numetapa, E.nomequipo, E.director HAVING COUNT(*)>=3; 26. Nombre de los equipos que sólo tienen ciclistas menores de 28 años. SELECT nomequipo FROM Equipo WHERE nomequipo IN (SELECT nomequipo FROM Ciclista WHERE edad <28) AND nomequipo NOT IN (SELECT nomequipo FROM Ciclista WHERE edad>=28);
  • 12. Ejercicios SQL. - Vuelta Ciclista. 12 27. Dorsal y nombre del ciclista que ha llevado el maillot amarillo durante más etapas.  Con ALL: SELECT C.dorsal, C.nombre FROM Ciclista AS C, Lleva AS L, Maillot AS M WHERE C.dorsal=L.dorsal AND M.código=L.código AND M.color='amarillo' GROUP BY C.dorsal, C.nombre HAVING COUNT(*) >= ALL ( SELECT COUNT(*) AS veces FROM Lleva LL, Maillot MA WHERE LL.código = MA.código AND MA.color='amarillo' GROUP BY LL.dorsal );  Con TOP : SELECT TOP(1) dorsal, nombre FROM Ciclista AS C, Lleva AS L, Maillot AS M WHERE C.dorsal=L.dorsal AND M.código=L.código AND M.color='amarillo' GROUP BY C.dorsal, C.nombre ORDER BY COUNT(*) DESC;