Complejas IV Tmp

April 19, 2017 | Author: zelote57 | Category: N/A
Share Embed Donate


Short Description

Download Complejas IV Tmp...

Description

1. Obtener el código, el tipo, el color y el premio de todos los  maillots que hay. select * from maillots;

2. Obtener el dorsal y el nombre de los ciclistas cuya edad sea  menor o igual que 25 años. select dorsal, nombre from ciclistas where edad 25;

7.

¿Cuántos equipos hay? select count(*) from equipos;

8.

Obtener la media de edad de los ciclistas. select round(avg(eda round(avg(edad),2) d),2) from ciclistas;

9.

Obtener la altura mínima y máxima de los puertos de montaña. select min(altura), max(altura) from puertos;

10. Obtener el nombre de cada ciclista junto con el nombre del equipo al que pertenece. select nombre as ciclista, nomeq as equipo from ciclistas c;

11.

Obtener el nombre de los ciclistas que sean de Banesto. select nombre from ciclistas where nomeq='Banes nomeq='Banesto'; to';

12.

¿Cuántos ciclistas pertenecen al equipo Amore Vita? select count(*) from ciclistas where nomeq='Amore Vita';

13.

Edad media de los ciclistas del equipo TVM. select avg(edad) from ciclistas where nomeq='TVM';

14.  Nombre de los ciclistas que pertenezcan al mismo equipo que  Miguel Indurain. Indurain. select nombre from ciclistas where nomeq = (select nomeq from ciclistas where nombre='Miguel Induráin');

15.  Nombre de los ciclistas que han ganado alguna alguna etapa. Select nombre from ciclistas where dorsal in (select dorsalganado dorsalganador r from etapas);

16.  Nombre de los ciclistas que han llevado el maillot General. General. select nombre from ciclistas where dorsal in (select dorsal from llevar where codmaillot = (select codigo from maillots where tipo='General tipo='General')); '));

17.

Obtener el nombre del ciclista más joven. select nombre from ciclistas where edad = (select min(edad) from ciclistas);

18.

Obtener el número de ciclistas de cada equipo. select nomeq, count(*) from ciclistas group by nomeq;

19. Obtener ciclistas.

el

nombre

de

los

equipos

que

tengan

más

de

5

select nomeq from ciclistas group by nomeq having count(*)>5;

20.

Obtener el número de puertos que ha ganado cada ciclista. select c.nombre, count(p.dorsalganador) from puertos p right outer join ciclistas c on c.dorsal=p.do c.dorsal=p.dorsalganador rsalganador group by c.nombre;

21. Obtener el nombre de los ciclistas que han ganado más de un  puerto. select c.nombre, count(p.dorsalganador) from puertos p right outer join ciclistas c on c.dorsal=p.do c.dorsal=p.dorsalganador rsalganador group by c.nombre having count(*)>1;

22. Obtener el nombre y el director de los  pertenezca algún algún ciclista mayor mayor de 33 años. años.

equipos

select nombre, director from equipos where nombre in (select nomeq from ciclistas where edad > 33);

23.  Nombre de los ciclistas que no pertenezcan pertenezcan a Kelme. select nombre from ciclistas where nomeq != 'Kelme';

a

los

que

24.  Nombre de los ciclistas que no hayan ganado ganado ninguna etapa. etapa. select nombre from ciclistas where dorsal not in (select dorsalganador from etapas);

25.  Nombre de los ciclistas que no hayan ganado ningún puerto de  montaña. select nombre from ciclistas where dorsal not in (select dorsalganador from puertos);

26.  Nombre de los ciclistas que hayan ganado más de un puerto de  montaña. select nombre from ciclistas where dorsal in (select dorsalganado dorsalganador r from puertos group by dorsalganador having count(*)>1);

27. ¿Qué Indurain?

ciclistas

han

llevado

el

mismo

maillot

que

Miguel

select nombre from ciclistas where dorsal in (select dorsal from llevar where codmaillot in (select codmaillot from llevar where dorsal= (select dorsal from ciclistas where nombre = 'Miguel Induráin'))) and nombre!='Miguel Induráin';

28. De cada equipo obtener la edad media, la máxima edad y la  mínima edad. select nomeq, round(avg(eda round(avg(edad),2), d),2), max(edad), min(edad) from ciclistas group by nomeq;

29.  Nombre de aquellos aquellos ciclistas ciclistas que tengan una edad entre 25 y 30 años y que no pertenezcan a los equipos Kelme y Banesto. select nombre from ciclistas where edad between 25 and 30 and nomeq not in ('Kelme','Banesto'); ('Kelme','Banesto');

30.  Nombre de los ciclistas que han ganado la etapa que comienza en Zamora. select nombre from ciclistas where dorsal = (select dorsalganador from etapas where salida='Zamo salida='Zamora'); ra');

31. Obtén el nombre y la categoría ciclistas del equipo ʻBanestoʼ.

de

los

puertos

ganados

por

select nombre, categoria from puertos where dorsalganador in (select dorsal from ciclistas where nomeq='Banest nomeq='Banesto'); o');

32. Obtener el nombre de cada puerto indicando el número (netapa) y los kilómetros de la etapa en la que se encuentra el puerto. select nombre, numetapa, numkms from puertos p, etapas e where p.numetapa=e p.numetapa=e.numero; .numero;

33. Obtener el nombre de  maillot que hayan hayan llevado.

los

ciclistas

con

el

color

de

cada

select distinct nombre, color from ciclistas c, maillots m, llevar l where c.dorsal = l.dorsal and m.codigo = l.codmaillot l.codmaillot; ;

34. Obtener pares de nombre de ciclista y número de etapa tal que ese ciclista haya ganado esa etapa habiendo llevado el maillot de color amarillo al menos una vez. select c.nombre, e.numero from ciclistas c, etapas e where c.dorsal=e.dorsalganador and c.dorsal in (select dorsal from llevar l where l.codmaillot = (select codigo from maillots where color='Amarillo') and l.numetapa < e.numero);

35. Obtener el valor del atributo netapa de las etapas que no comienzan en la misma ciudad en que acabó la anterior etapa. select numero from etapas e where salida != (select llegada from etapas e2 where e2.numero=(e e2.numero=(e.numero-1)); .numero-1));

36. Obtener el valor del atributo netapa y la ciudad de salida de aquellas etapas que no tengan puertos de montaña. select numero, salida from etapas where numero not in (select numetapa from puertos);

37. Obtener la edad media de los ciclistas que han ganado alguna etapa. select round(avg(eda round(avg(edad),2) d),2) from ciclistas where dorsal in (select dorsalganado dorsalganador r from etapas);

38. Selecciona el nombre de los puertos con una altura superior a la altura media de todos los puertos. select nombre from puertos where altura > (select avg(altura) from puertos);

39. Obtener el nombre de la ciudad de salida y de llegada de las etapas donde estén los puertos con mayor pendiente. select llegada, salida from etapas where numero in (select numetapa from puertos where pendiente = (select max(pendiente) from puertos));

40. Obtener el dorsal y el nombre de los ciclistas que han ganado los puertos de mayor altura. select dorsal, nombre from ciclistas where dorsal in (select dorsalganador from puertos where altura = (select max(altura) from puertos));

41. Obtener el nombre del ciclista más joven que ha ganado al  menos una etapa. etapa. select nombre from ciclistas where edad = (select min(edad) from ciclistas where dorsal in (select dorsalganador from etapas)) and dorsal in (select dorsalganador from etapas);

42. Obtener el valor del atributo netapa de aquellas etapas tales que todos los puertos que están en ellas tienen más de 700 metros de altura. select numero from etapas where numero not in (select numetapa from puertos where altura < 700) and numero in (select numetapa from puertos);

43. Obtener el nombre y el director de los equipos tales que todos sus ciclistas son mayores de 20 años. select nombre, director from equipos where nombre not in (select nomeq from ciclistas where edad < 20);

44. Obtener el dorsal y el nombre de los ciclistas tales que todas las etapas que han ganado tienen más de 170 km (es decir que sólo han ganado etapas de más de 170 km). select dorsal, nombre from ciclistas where dorsal not in (select dorsalganador from etapas where numkms3 and avg(edad)5) group by c.nombre;

53. Obtener el nombre de los equipos y la edad media de sus ciclistas de aquellos equipos que tengan la media de edad máxima de todos los equipos. create view edadesmedias as select e.nombre, avg(edad) as edadmedia from ciclistas c, equipos e where c.nomeq = e.nombre group by e.nombre; select e.nombre, avg(edad) from ciclistas c, equipos e where c.nomeq = e.nombre group by e.nombre having avg(edad)=(se avg(edad)=(select lect max(edadmedia max(edadmedia) ) from edadesmedias) edadesmedias); ;

54. Obtener el director de los equipos cuyos ciclistas han llevado  más días maillots maillots de cualquier cualquier tipo. create view numdiasmaillo numdiasmaillotporeq tporeq as select nomeq, count(*) as numdias from ciclistas c, llevar l where c.dorsal=l.do c.dorsal=l.dorsal rsal group by nomeq; select director from equipos where nombre in (select nomeq from ciclistas c, llevar l where c.dorsal=l.dor c.dorsal=l.dorsal sal group by nomeq having count(*)=(select max(numdias) from numdiasmaillo numdiasmaillotporeq)); tporeq));

55. Obtener el código y el color del maillot que ha sido llevado  por algún ciclista ciclista que no ha ganado ninguna ninguna etapa. select codigo, color from maillots where codigo in (select codmaillot from llevar where dorsal not in (select dorsalganador from etapas));

56. Obtener el valor del atributo netapa, la ciudad de salida y la ciudad de llegada de las etapas de más de 190 km y que tengan por lo menos dos puertos. Select numero, salida, llegada from etapas where numkms>190 and numero in (select numetapa from puertos group by numetapa having count(*)>=2);

57. Obtener el dorsal y el nombre de los ciclistas que no han llevado todos los maillots que ha llevado el ciclista de dorsal 2. select c.dorsal, nombre from ciclistas c where exists (select codmaillot from llevar where dorsal=2 and codmaillot not in (select codmaillot from llevar l where l.dorsal=c.d l.dorsal=c.dorsal)); orsal));

58. Obtener el dorsal y el nombre de los ciclistas que han llevado al menos un maillot de los que ha llevado el ciclista de dorsal 2. select c.dorsal, nombre from ciclistas c where dorsal in (select dorsal from llevar where codmaillot in (select codmaillot from llevar where dorsal=2));

59. Obtener el dorsal y el nombre de los ciclistas que no han llevado ningún maillot de los que ha llevado el ciclista de dorsal 2. select c.dorsal, nombre from ciclistas c where dorsal not in (select dorsal from llevar where codmaillot in (select codmaillot from llevar where dorsal=2));

60. Obtener el dorsal y nombre de los ciclistas que han llevado exactamente los mismos maillots que ha llevado el ciclista de dorsal 1. select c.dorsal, nombre from ciclistas c where not exists (select codmaillot from llevar where dorsal=1 and codmaillot not in (select codmaillot from llevar l where l.dorsal=c.do l.dorsal=c.dorsal)) rsal)) and not exists (select codmaillot from llevar where dorsal=c.dors dorsal=c.dorsal al and codmaillot not in (select codmaillot from llevar l where l.dorsal=1));

61. Obtener el dorsal y el nombre del ciclista que ha llevado durante más kilómetros un mismo maillot e indicar también el color de dicho maillot. create view kmspormaillot as select dorsal, codmaillot, sum(numkms) as kms from etapas e, llevar l, maillots m where e.numero=l.n e.numero=l.numetapa umetapa and m.codigo=l.cod m.codigo=l.codmaillot maillot group by dorsal, codmaillot; Select dorsal, codmaillot, color, sum(numkms) from etapas e, llevar l, maillots m where e.numero =l.numetapa and m.codigo=l.codmaillot group by dorsal, codmaillot, color having sum(numkms)=(select max(kms) from kmspormaillot kmspormaillot); );

62. Obtener el dorsal y el nombre de los ciclistas que han llevado dos tipos de maillot menos de los que ha llevado el ciclista de dorsal 3. select dorsal, nombre from ciclistas where dorsal in (select dorsal from llevar group by dorsal having count(*) + 2 =(select count(distinct count(distinct codmaillot) from llevar where dorsal=3));

63. Obtener el valor del atributo netapa y los km de las etapas que tienen puertos de montaña. select numero, numkms from etapas where exists (select numetapa from puertos where numetapa=num numetapa=numero); ero);

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF