Está en la página 1de 10

/* EXAMEN PARCIAL PROGRAMACIÓN AVANZADA DE BASE DE DATOS

NRC 2770

Digitar aquí el nombre completo de los integrantes del grupo

*/

USE Formula1;

/* Pregunta 1

Obtenga el listado con el nombre del piloto ganador de cada

una de las carreras de la temporada 2015. La columna

posicionOrden en la tabla ResultadoPiloto registra la posición

en la que quedó el piloto.

El listado debe mostrar también la fecha de la carrera.

*/

/* Pregunta 2

Genere el ranking de constructores de la temporada 2015.

*/

/* Pregunta 3

Obtenga un listado que muestre todas las carreras en las que

participó el piloto Sebastian Vettel en la temporada 2015,

y en qué posición quedó al final de cada carrera.


El listado debe mostrar también la fecha de la carrera.

*/

/* Pregunta 4

La columna velocidadVMR en la tabla ResultadoPiloto

registra la velocidad de la vuelta más rápida realizada por

el piloto en la carrera. ¿Cuál es el record de velocidad para

el circuito Red Bull Ring?

*/

/* Pregunta 5

La columna tiempoVMR en la tabla ResultadoPiloto

registra el tiempo de la vuelta más rápida realizada por

el piloto en la carrera. ¿Cuál es el tiempo de la vuelta más

rápida en el circuito Circuit de Monaco, qué piloto la realizó,

y en qué temporada?

*/

/* Pregunta 6

¿Quién es el piloto que tiene más carreras ganadas


tomando en cuenta todas las temporadas?

*/

/* Pregunta 7

¿Qué pilotos fueron descalificados (disqualified) en la

temporada 2015, y en qué carreras?

*/

/* Pregunta 8

¿Cuál es el circuito con más choques (collision) de autos?

Ver la tabla Estado.

*/

/* Pregunta 9

Elabore un reporte que muestre el orden de llegada de los pilotos

en la carrera del circuito Circuit de Monaco de la temporada 2015.

El reporte debe mostrar: la posición de llegada,el número del auto,

el apellido del piloto, y su nacionalidad.

*/
/* Pregunta 10

Genere un listado que muestre al piloto ganador de cada una

de las temporadas.

*/

/* EXAMEN PARCIAL PROGRAMACIÓN AVANZADA DE BASE DE DATOS

NRC 2771

Digitar aquí el nombre completo de los integrantes del grupo

*/

USE Formula1;

/* Pregunta 1

Obtenga el listado con el nombre del piloto ganador de cada

una de las carreras de la temporada 2015. La columna

posicionOrden en la tabla ResultadoPiloto registra la posición

en la que quedó el piloto.

El listado debe mostrar también la fecha de la carrera.

*/

SELECT Carrera.fecha, Carrera.nombre,

Piloto.apellido, Piloto.nombre

FROM ResultadoPiloto INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Piloto


ON ResultadoPiloto.idPiloto = Piloto.idPiloto

WHERE Carrera.año = 2015 AND ResultadoPiloto.posicionOrden = 1

/* Pregunta 2

Genere el ranking de constructores de la temporada 2015.

*/

SELECT ResultadoConstructor.IdConstructor,

Constructor.nombre, Constructor.nacionalidad,

SUM(ResultadoConstructor.puntaje) AS Puntos

FROM ResultadoConstructor INNER JOIN Constructor

ON ResultadoConstructor.IdConstructor = Constructor.idConstructor

INNER JOIN Carrera

ON ResultadoConstructor.IdCarrera = Carrera.idCarrera

WHERE Carrera.año = 2015

GROUP BY ResultadoConstructor.IdConstructor,

Constructor.nombre, Constructor.nacionalidad

ORDER BY Puntos DESC;

/* Pregunta 3

Obtenga un listado que muestre todas las carreras en las que

participó el piloto Sebastian Vettel en la temporada 2015,

y en qué posición quedó al final de cada carrera.

El listado debe mostrar también la fecha de la carrera.

*/

SELECT Carrera.fecha, Carrera.nombre, ResultadoPiloto.posicionOrden

FROM ResultadoPiloto INNER JOIN Piloto


ON ResultadoPiloto.idPiloto = Piloto.idPiloto

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

WHERE Piloto.apellido = 'Vettel'

AND Piloto.nombre = 'Sebastian'

AND Carrera.año = 2015;

/* Pregunta 4

La columna velocidadVMR en la tabla ResultadoPiloto

registra la velocidad de la vuelta más rápida realizada por

el piloto en la carrera. ¿Cuál es el record de velocidad para

el circuito Red Bull Ring?

*/

SELECT MAX(ResultadoPiloto.velocidadVMR) AS RecordVelocidad

FROM ResultadoPiloto INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Circuito

ON Carrera.idCircuito = Circuito.idCircuito

WHERE Circuito.nombre = 'Red Bull Ring';

/* Pregunta 5

La columna tiempoVMR en la tabla ResultadoPiloto

registra el tiempo de la vuelta más rápida realizada por

el piloto en la carrera. ¿Cuál es el tiempo de la vuelta más

rápida en el circuito Circuit de Monaco, qué piloto la realizó,

y en qué temporada?
*/

SELECT ResultadoPiloto.tiempoVMR,

Piloto.apellido, Piloto.nombre, Carrera.año

FROM ResultadoPiloto INNER JOIN Piloto

ON ResultadoPiloto.idPiloto = Piloto.idPiloto

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Circuito

ON Carrera.idCircuito = Circuito.idCircuito

WHERE ResultadoPiloto.tiempoVMR IS NOT NULL

AND Circuito.nombre = 'Circuit de Monaco'

ORDER BY ResultadoPiloto.tiempoVMR

/* Pregunta 6

¿Quién es el piloto que tiene más carreras ganadas

tomando en cuenta todas las temporadas?

*/

SELECT Piloto.apellido, Piloto.nombre,

COUNT(ResultadoPiloto.idResulPiloto) AS CarrerasGanadas

FROM ResultadoPiloto INNER JOIN Piloto

ON ResultadoPiloto.idPiloto = Piloto.idPiloto

WHERE ResultadoPiloto.posicionOrden = 1

GROUP BY Piloto.apellido, Piloto.nombre

ORDER BY CarrerasGanadas DESC;

/* Pregunta 7
¿Qué pilotos fueron descalificados (disqualified) en la

temporada 2015, y en qué carreras?

*/

SELECT Piloto.apellido, Piloto.nombre,

Carrera.nombre

FROM ResultadoPiloto INNER JOIN Estado

ON ResultadoPiloto.idEstado = Estado.idEstado

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Piloto

ON ResultadoPiloto.idPiloto = Piloto.idPiloto

WHERE Estado.estado = 'Disqualified'

AND Carrera.año = 2014;

/* Pregunta 8

¿Cuál es el circuito con más choques (collision) de autos?

Ver la tabla Estado.

*/

SELECT Circuito.nombre,

COUNT(ResultadoPiloto.idResulPiloto) As Colisiones

FROM ResultadoPiloto INNER JOIN Estado

ON ResultadoPiloto.idEstado = Estado.idEstado

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Circuito

ON Carrera.idCircuito = Circuito.idCircuito
WHERE Estado.estado = 'Collision'

GROUP BY Circuito.nombre

ORDER BY Colisiones DESC;

/* Pregunta 9

Elabore un reporte que muestre el orden de llegada de los pilotos

en la carrera del circuito Circuit de Monaco de la temporada 2015.

El reporte debe mostrar: la posición de llegada,el número del auto,

el apellido del piloto, y su nacionalidad.

*/

SELECT ResultadoPiloto.posicionOrden, ResultadoPiloto.numero,

Piloto.apellido, Piloto.nacionalidad

FROM ResultadoPiloto INNER JOIN Piloto

ON ResultadoPiloto.idPiloto = Piloto.idPiloto

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

INNER JOIN Circuito

ON Carrera.idCircuito = Circuito.idCircuito

WHERE Carrera.año = 2015

AND Circuito.nombre = 'Circuit de Monaco'

ORDER BY ResultadoPiloto.posicionOrden;

go

/* Pregunta 10

Genere un listado que muestre al piloto ganador de cada una

de las temporadas.
*/

CREATE VIEW vPuntosTemporadaPiloto

AS

SELECT Carrera.año, Piloto.apellido, Piloto.nombre,

SUM(ResultadoPiloto.puntaje) AS puntaje

FROM ResultadoPiloto INNER JOIN Piloto

ON ResultadoPiloto.idPiloto = Piloto.idPiloto

INNER JOIN Carrera

ON ResultadoPiloto.idCarrera = Carrera.idCarrera

GROUP BY Carrera.año, Piloto.apellido, Piloto.nombre;

go

SELECT año, apellido, nombre

FROM vPuntosTemporadaPiloto V1

WHERE puntaje = (SELECT MAX(puntaje) FROM vPuntosTemporadaPiloto V2

WHERE V1.año = V2.año)

ORDER BY año;

go

También podría gustarte