Giter Club home page Giter Club logo

formula1-database's Introduction

🏁 Fórmula 1 Database

Projeto final desenvolvido no 3º módulo do curso de Desenvolvimento Web FullStack no programa B2B Geração Futuro (Resilia + Stone).

Descrição

O propósito desse projeto é criar visualizações de dados com base nas consultas realizadas no banco de dados escolhido (Fórmula 1).

O conjunto de dados contém as informações sobre o universo da Fórmula 1, permitindo a análise e consulta dos construtores, pilotos, qualificações, circuitos, tempos de volta, pit stops, entre outros.

🛠 Ferramentas Utilizadas

  • MySQL WorkBench
  • The Open Source Firebase (Supabase)
  • Figma (Confecção dos gráficos)
  • Trello (Organização da Squad)

🔎 Queries

[ 1 ] Pilotos mais vitoriosos da F1.

imagem

SELECT
  pilotos.piloto_id, pilotos.nome, pilotos.sobrenome, COUNT(resultados.position) AS numero_vitorias 
FROM
  resultados
INNER JOIN
  pilotos on resultados.driverId = pilotos.piloto_Id
WHERE
  resultados.position = 1
GROUP BY
  pilotos.piloto_Id
ORDER BY
  numero_vitorias desc limit 5;
[ 2 ] Média de velocidade máxima nas voltas mais rápidas dos pilotos.

imagem

SELECT "fastestLapSpeed" 
AS MAX_VELOCIDADE 
FROM "F1_resultados" 
WHERE "resultId" <100 
ORDER BY "fastestLapSpeed" 
ASC;

SELECT AVG("fastestLapSpeed") 
AS MAX_VELOCIDADE 
FROM "F1_resultados" 
WHERE "resultId" < 100;
[ 3 ] Nacionalidade dos corredores que atingiram as maiores velocidades em uma única volta.

imagem

SELECT 
  "F1_drivers".forename,
  "F1_drivers".surname,
  "F1_drivers".nationality,
  "F1_results"."raceId" AS corrida,
  "F1_results"."fastestLapSpeed" AS velocidade
FROM 
  "F1_results"
INNER JOIN
  "F1_drivers" ON  "F1_results"."driverId" = "F1_drivers"."driverId" 
WHERE 
  "F1_results"."statusId" = 1
GROUP BY
  "F1_drivers".forename,
  "F1_drivers".surname,
  "F1_results"."raceId",
  "F1_drivers".nationality,
  "F1_results"."fastestLapSpeed"
ORDER BY
 "fastestLapSpeed" DESC 
LIMIT 5;
[ 4 ] Circuitos que mais protagonizaram acidentes.

imagem

SELECT
  C.name as circuito,
  C.country,
  S.status,
  count(*) as acidentes
FROM f1_circuits as C
LEFT JOIN
  f1_races as RA on C.circuitId = RA.circuitId
LEFT JOIN
  f1_results as RE on RA.raceId = RE.raceId
LEFT JOIN
  f1_status as S on S.statusId = RE.statusId
GROUP BY circuito, C.country, S.status
HAVING S.status = 'Accident'
ORDER by acidentes desc;
[ 5 ] Restrospecto dos pilotos na história da Mercedes.

imagem

SELECT
    pilotos.piloto_Id,
    pilotos.nome,
    pilotos.sobrenome,
    construtores.nome,
    COUNT(resultados.position) AS numero_vitorias
FROM
    resultados
        INNER JOIN
    pilotos ON resultados.driverId = pilotos.piloto_Id
        INNER JOIN
    construtores ON resultados.constructorId = construtores.constructor_Id
WHERE
    position = 1
        AND construtores.nome = 'Mercedes'
GROUP BY construtores.nome , pilotos.piloto_Id
ORDER BY numero_vitorias DESC
LIMIT 5;
[ 6 ] Restrospecto dos pilotos na história da McLaren.

image

SELECT 
  pilotos.piloto_Id,
  pilotos.nome,
  pilotos.sobrenome,
  construtores.nome,
  COUNT(resultados.position) AS numero_vitorias
FROM
  resultados
INNER JOIN
  pilotos ON resultados.driverId = pilotos.piloto_Id
INNER JOIN
    construtores ON resultados.constructorId = construtores.constructor_Id
WHERE
  position = 1
AND construtores.nome = 'McLaren'
GROUP BY construtores.nome , pilotos.piloto_Id
ORDER BY numero_vitorias DESC
LIMIT 5;

Lewis Hamilton

Destacamos as estatísticas do piloto Lewis Hamilton no processo de desenvolvimento das queries.

[ 7 ] 5 voltas mais rapidas realizadas por Lewis Hamilton.

image

SELECT 
  "F1_drivers".forename,
  "F1_drivers".surname,
  "F1_results"."raceId" AS corrida,
  "F1_races".name AS circuito,
  "F1_results"."fastestLapTime" AS tempo
FROM 
  "F1_results"
INNER JOIN
  "F1_drivers" ON  "F1_results"."driverId" = "F1_drivers"."driverId"
  INNER JOIN
  "F1_races" ON "F1_results"."raceId" = "F1_races"."raceId"
WHERE 
  "F1_results"."statusId" = 1 
  AND "F1_drivers"."driverId" = '1' 
GROUP BY
  "F1_drivers".forename,
  "F1_drivers".surname,
  "F1_results"."raceId",
  "F1_races".name,
  "F1_results"."fastestLapTime"
ORDER BY
 "fastestLapTime" ASC
LIMIT 5;
[ 8 ] Status das corridas.

imagem

SELECT
  D.forename,
  D.surname,
  C.name as circuito,
  RE.statusId,
  S.status
FROM f1_circuits as C
LEFT JOIN
  f1_races as RA on C.circuitId = RA.circuitId
LEFT JOIN
  f1_results as RE on RE.raceId = RA.raceId
LEFT JOIN
  f1_drivers as D on RE.driverId = D.driverId
LEFT JOIN
  f1_status as S on RE.statusId = S.statusId
WHERE  D.forename = 'Lewis' and D.surname = 'Hamilton'
GROUP BY D.forename, D.surname, RE.statusId, S.status, circuito;
[ 9 ] Em qual equipe Lewis Hamilton teve mais vitórias.

imagem

SELECT
    pilotos.piloto_Id,
    pilotos.nome,
    pilotos.sobrenome,
    construtores.nome,
    COUNT(resultados.position) AS numero_vitorias
FROM
    resultados
        INNER JOIN
    pilotos ON resultados.driverId = pilotos.piloto_Id
        INNER JOIN
    construtores ON resultados.constructorId = construtores.constructor_Id
WHERE
    position = 1
        AND pilotos.sobrenome = 'Hamilton'
GROUP BY construtores.nome , pilotos.piloto_Id;
[ 10 ] Média de velocidade máxima nas voltas mais rápidas de Lewis Hamilton

imagem

SELECT "fastestLapSpeed" 
AS MAX_VELOCIDADE 
FROM "F1_resultados" 
WHERE "driverId" = 1 
ORDER BY "fastestLapSpeed" ASC;

SELECT AVG("fastestLapSpeed") 
AS MAX_VELOCIDADE 
FROM "F1_resultados" 
WHERE "driverId" = 1;

🌐 WebSite

Desenvolvemos um site para melhor visualização dos gráficos. Acesse aqui.

Squad

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.