-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path04_qualifying&sprint_insights.sql
More file actions
40 lines (35 loc) · 1.29 KB
/
Copy path04_qualifying&sprint_insights.sql
File metadata and controls
40 lines (35 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-- Drivers Who Gained vs Lost Most Positions on Average
SELECT
d.driverId,
CONCAT(d.forename,' ',d.surname) AS driver_name,
COUNT(*) AS total_races,
ROUND(AVG(CASE WHEN r.grid>0 THEN r.grid END), 2) AS avg_qualifying_pos,
ROUND(AVG(CASE WHEN r.positionOrder>0 THEN r.positionOrder END),2) AS avg_finish_position,
ROUND(AVG(r.positionOrder - r.grid), 2) AS avg_position_loss
FROM results r
JOIN drivers d on r.driverId=d.driverId
WHERE r.grid>0 and r.positionOrder>0
GROUP BY d.driverId,driver_name
HAVING total_races >= 30 AND avg_position_loss > 0
ORDER BY total_races DESC;
-- Sprint race winners vs final race winners
SELECT
ra.year,
ra.name AS race_name,
CONCAT(ds.forename,' ',ds.surname) AS sprint_winner,
cs.name AS sprint_team,
CONCAT(df.forename,' ',df.surname) AS race_Winner,
cf.name AS race_team,
CASE
WHEN ds.driverId=df.driverId THEN 'Same'
ELSE 'Different'
END AS sprint_vs_race_Winner
FROM races ra
JOIN sprint_results sr ON ra.raceId=sr.raceId and sr.positionOrder=1
JOIN drivers ds ON sr.driverId = ds.driverId
JOIN constructors cs ON sr.constructorId = cs.constructorId
JOIN results r ON ra.raceId = r.raceId AND r.positionOrder = 1
JOIN drivers df ON r.driverId = df.driverId
JOIN constructors cf ON r.constructorId = cf.constructorId
WHERE ra.year>=2021
ORDER BY ra.year,ra.round