summaryrefslogtreecommitdiff
path: root/views/dead_vs_living.sql
diff options
context:
space:
mode:
Diffstat (limited to 'views/dead_vs_living.sql')
-rw-r--r--views/dead_vs_living.sql22
1 files changed, 22 insertions, 0 deletions
diff --git a/views/dead_vs_living.sql b/views/dead_vs_living.sql
new file mode 100644
index 0000000..fd1c1d7
--- /dev/null
+++ b/views/dead_vs_living.sql
@@ -0,0 +1,22 @@
+-- dead drivers count vs living drivers count for each race
+DROP VIEW IF EXISTS dead_vs_living;
+CREATE VIEW dead_vs_living AS
+SELECT CONCAT(races.year, " ", races.name) race, races.date,
+ COUNT(debut_dates.driverId) overall,
+ SUM(drivers.dod IS NULL OR drivers.dod >= races.date) living,
+ SUM(drivers.dod < races.date) dead
+ FROM races
+ JOIN debut_dates ON debut_dates.date <= races.date
+ JOIN drivers ON debut_dates.driverId = drivers.driverId
+ GROUP BY races.raceId;
+
+-- average debut age vs average lifespan for each race
+DROP VIEW IF EXISTS debut_age_vs_lifespan;
+CREATE VIEW debut_age_vs_lifespan AS
+SELECT CONCAT(races.year, " ", races.name) race, races.date,
+ AVG(DATEDIFF(debut_dates.date, drivers.dob)) debut_age,
+ AVG(DATEDIFF(LEAST(races.date, COALESCE(drivers.dod, races.date)), drivers.dob)) lifespan
+ FROM races
+ JOIN debut_dates ON debut_dates.date <= races.date
+ JOIN drivers ON debut_dates.driverId = drivers.driverId
+ GROUP BY races.raceId;