我試圖找出 F1 車隊所遵循的進站策略,以及平均而言哪種策略會產生更好的獲勝結果。但是,每次我嘗試執行查詢時,我都會得到冗余資料。
資料集示例:
驅動表
| 驅動程式 ID | 驅動程式參考 | 司機編號 |
|---|---|---|
| 1 | 劉易斯 | 22 |
| 2 | 阿隆索 | 14 |
| 3 | 最大限度 | 1 |
比賽結果
| 結果ID | 種族ID | 司機ID | 數字 | 位置 | 圈數 |
|---|---|---|---|---|---|
| 1 | 12 | 1 | 22 | 1 | 53 |
| 1 | 12 | 2 | 14 | 6 | 53 |
| 1 | 12 | 3 | 1 | 2 | 53 |
| 2 | 13 | 1 | 22 | 2 | 57 |
| 2 | 13 | 2 | 14 | 6 | 57 |
| 2 | 13 | 3 | 1 | 1 | 57 |
比賽
| 種族ID | 年 | 電路ID | 姓名 |
|---|---|---|---|
| 12 | 2009 | 1 | 蒙扎 |
| 13 | 2013 | 2 | 巴林薩基爾 |
進站
| 種族ID | 司機ID | 停止 | 圈 |
|---|---|---|---|
| 12 | 1 | 1 | 17 |
| 12 | 1 | 2 | 34 |
| 12 | 2 | 1 | 14 |
| 12 | 2 | 2 | 42 |
| 12 | 3 | 1 | 20 |
| 12 | 3 | 2 | 37 |
| 13 | 1 | 1 | 14 |
| 13 | 1 | 2 | 32 |
| 13 | 2 | 1 | 12 |
| 13 | 2 | 2 | 34 |
| 13 | 3 | 1 | 20 |
| 13 | 3 | 2 | 42 |
我想要的結果表看起來與此類似。
策略選擇
| 驅動程式參考 | 種族ID | 電路ID | 姓名 | 停止 | 圈 |
|---|---|---|---|---|---|
| 劉易斯 | 12 | 1 | 蒙扎 | 1 | 17 |
| 劉易斯 | 12 | 1 | 蒙扎 | 2 | 34 |
| 最大限度 | 13 | 2 | 巴林薩基爾 | 1 | 20 |
| 最大限度 | 13 | 2 | 巴林薩基爾 | 2 | 42 |
這里的目標是找出獲勝車手在特定賽道上使用的維修策略。
SELECT ra.year, ra.name, d.properdriverref, (SELECT DISTINCT re.number FROM results WHERE re.position = 1), p.stop, p.lap, re.position
FROM pit_stops p
JOIN results re ON re.raceId = p.raceId
JOIN races ra ON p.raceId = ra.raceId
JOIN DriversXL d ON p.driverId = d.driverId
WHERE ra.year >= 2018 AND re.position = 1
我使用的代碼和資料集是否回傳了
| 驅動程式參考 | 種族ID | 電路ID | 姓名 | 停止 | 圈 |
|---|---|---|---|---|---|
| 劉易斯 | 12 | 1 | 蒙扎 | 1 | 17 |
| 劉易斯 | 12 | 1 | 蒙扎 | 2 | 34 |
| 最大限度 | 12 | 1 | 蒙扎 | 1 | 17 |
| 最大限度 | 12 | 1 | 蒙扎 | 2 | 34 |
| 阿隆索 | 12 | 1 | 蒙扎 | 1 | 17 |
| 阿隆索 | 12 | 1 | 蒙扎 | 2 | 34 |
| 最大限度 | 13 | 2 | 巴林薩基爾 | 1 | 20 |
| 最大限度 | 13 | 2 | 巴林薩基爾 | 2 | 42 |
| 劉易斯 | 13 | 2 | 巴林薩基爾 | 1 | 20 |
| 劉易斯 | 13 | 2 | 巴林薩基爾 | 2 | 42 |
| 阿隆索 | 13 | 2 | 巴林薩基爾 | 1 | 20 |
| 阿隆索 | 13 | 2 | 巴林薩基爾 | 2 | 42 |
uj5u.com熱心網友回復:
pit_stop您在和之間缺少一個額外的連接列results。
不清楚該子查詢的意義,因此我已將其洗掉
SELECT
d.driverref,
r.raceId,
r.circuitId,
ra.year,
ra.name,
p.stop,
p.lap
FROM pit_stops p
JOIN results re ON re.raceId = p.raceId AND re.DriverID = p.DriverID
JOIN races ra ON p.raceId = ra.raceId
JOIN DriversXL d ON p.driverId = d.driverId
WHERE re.position = 1;
db<>小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/449601.html
下一篇:回傳IEnumerable<Object>而不是IEnumerable<IEnumerable><Object>
