ModeloG (Solucion)
ModeloG (Solucion)
ModeloG (Solucion)
Normativa
1. Dispone de 1 hora para la realización del examen.
SELECT name
FROM constructors
WHERE nationality LIKE ('Italian')
AND EXISTS (SELECT *
FROM results
INNER JOIN drivers ON drivers.driverId = results.resultId
WHERE results.constructorId = constructors.constructorId
AND drivers.nationality = constructors.nationality)
2. Codifique una consulta que obtenga el nombre y apellidos del piloto que más accidentes
(status.status = ’Accident’) ha tenido. Mostrar también el número de accidentes.
3. Codifique una consulta que obtenga el nombre y apellidos de los pilotos que hayan
calificado entre los 10 primeros puestos (position <= 10) de todas las carreras del
año 2015.
en la base de datos. Los resultados deberá estar ordenados de mayor a menor número
de victorias.
DELIMITER $$
CREATE PROCEDURE getNumberOfVictories (IN type VARCHAR(20))
BEGIN
IF type = 'nationality' THEN
SELECT drivers.nationality, COUNT(*) AS numVictorires
FROM results
INNER JOIN drivers ON drivers.driverId = results.driverId
WHERE results.positionOrder = 1
GROUP BY drivers.nationality
ORDER BY numVictorires DESC;
ELSE
SELECT constructors.name, COUNT(*) AS numVictorires
FROM results
INNER JOIN constructors ON constructors.constructorId = results.constructorId
WHERE results.positionOrder = 1
GROUP BY constructors.name
ORDER BY numVictorires DESC;
END IF;
END$$
DELIMITER ;