Buscar

Consultas de Fórmula 1

Prévia do material em texto

1) O resultado final (posição de chegada, nome do piloto e tempo de prova) do GP de “Interlagos”
R: select r.posicao_chegada, p.nome, r.tempo_corrida from resultados r join pilotos p on r.numero_piloto = p.numero where sigla_gp = 'BRA' order by posicao_chegada;
2) Qual o tempo da volta mais rápida do GP de “Mônaco”
R: select min(tempo) from voltas where sigla_gp = 'MON';
3) Os nomes dos países e suas respectivas quantidades de pilotos, ordenados de forma decrescente pelas quantidades de pilotos
R: select p.nome,count(*) qtda from paises p join pilotos pi on p.codigo = pi.cod_pais group by p.nome order by qtda desc;
4) A classificação do Mundial de Construtores (nome da equipe e pontuação na temporada)
R: select e.nome, sum(pontuacao) pts from resultados r join pilotos pi on pi.numero = r.numero_piloto join equipes e on e.sigla = pi.sigla_equipe 
group by e.nome order by pts desc;
5) Os nomes dos GPs que tiveram ao menos uma volta abaixo de 1 min e 30 seg.
R: select c.nome_gp from corridas c join participantes p on p.sigla_gp = c.sigla_gp join voltas v on v.numero_piloto = p.numero_piloto where tempo < '1:30:00' group by c.nome_gp; 
6) O nome do piloto conseguiu o melhor tempo de volta em toda a temporada
R: select pi.nome from voltas as v join participantes p on v.numero_piloto = p.numero_piloto join resultados r on r.sigla_gp = p.sigla_gp join pilotos as pi on pi.numero = p.numero_piloto where tempo = (select min(tempo) from voltas) group by pi.nome;
8) Nomes das equipes que possuem ao menos um piloto entre as três posições de alguma corrida
R: select eq.nome from resultados r join participantes p on p.numero_piloto = r.numero_piloto join pilotos pi on pi.numero = p.numero_piloto join equipes eq on eq.sigla = pi.sigla_equipe where r.posicao_chegada = 1 or r.posicao_chegada = 2 or posicao_chegada = 3 group by eq.nome;
9) Nomes das equipes em que todos os pilotos pontuaram na temporada
R: select eq.nome from resultados r join participantes p on p.numero_piloto = r.numero_piloto join pilotos pi on pi.numero = p.numero_piloto join equipes eq on eq.sigla = pi.sigla_equipe where r.pontuacao <> 0 group by eq.nome;
10) Nomes dos países e suas quantidades de pilotos, mas só daqueles que possuem corridas realizadas no país
R: select p.nome, count(*) qtda from paises p join pilotos pi on p.codigo = pi.cod_pais join corridas c on c.cod_pais = p.codigo where pi.cod_pais = c.cod_pais group by p.nome;
11) Nomes dos pilotos que venceram corridas realizadas em seu próprio país
R: select pi.nome, from resultados r join participantes p on p.numero_piloto = r.numero_piloto join pilotos pi on pi.numero = p.numero_piloto join paises pa on pa.codigo = pi.cod_pais join corridas co on co.cod_pais = pa.codigo where r.posicao_chegada = '1'and r.sigla_gp = co.sigla_gp and co.cod_pais = pi.cod_pais group by pi.nome;
13) Nomes das equipes e suas quantidades de vitórias
R: select e.nome,count(posicao_chegada) qtd from resultados r join pilotos pi on pi.numero = r.numero_piloto join equipes e on e.sigla = pi.sigla_equipe where r.posicao_chegada = '1' group by e.nome order by qtd desc;

Continue navegando