Я пытаюсь вычислить наибольшее количество аварий в одной гонке, которое было у любой машины, поэтому у машины может быть несколько аварий в одной гонке (образно).У меня есть таблица сбоев со следующими столбцами:
c_raceName
, c_raceDate
, c_raceId
и другие не относящиеся к делу.
Во-первых, чтобы однозначно идентифицировать расу, в которую он входит вraceName
и raceDate
пара.И чтобы однозначно идентифицировать сбой, вы должны использовать эту пару вместе с raceId
.
Так что все эти столбцы фактически принадлежат другой таблице, которая является нашей Entry
таблицей.Эта таблица содержит информацию об автомобилях, которые участвуют в гонках.В этой таблице есть следующие столбцы:
e_raceId
, e_raceDate
, e_raceName
, e_raceEntryCarId
, e_raceEntryDriverId
.
Я понял, что не каждая раса будет участвоватьв таблицу Crash
, поэтому я считаю, что я должен либо ссылаться на таблицу Entry
из таблицы Crash
, либо наоборот.
Более того, что, если данные еще не были включены для гонок, а пара данных raceName
и raceDate
существует только в таблице Race
, которая содержит r_raceName
и r_raceDate
базовая информация.
Так что я думаю, что мне, возможно, придется сделать это SELECT
из таблицы Crash
и JOIN
до таблицы Entry
и далее до таблицы Race
чтобы действительно получить все пары raceName
и raceDate
.Хотя я понятия не имею, как мне тогда написать условие, которое говорит, что если этих пар нет в таблице Crash
, то в своем выводе я хочу, чтобы им было дано значение 0 или чтобы они присутствовали в моемна самом деле вывод.
Итак, я дошел до этого:
SELECT DISTINCT l.c_raceName AS raceName,
l.c_raceDate AS raceDate,
COUNT( l.c_raceId) AS mostCrashes
FROM Crashes l
GROUP BY l.c_raceId
;
Получив вывод:
raceName | raceDate | mostCrashes
---------------------------------
Race 1 |2018/01/21| 1
Race 1 |2018/01/21| 3
... | ... | ...
Так что я смогразделите их на 3 и 1, как показано выше, хотя я хочу, чтобы отображалось только большинство сбоев, так что 3 строки.Также я хочу, чтобы все гонки, у которых не было сбоев, отображались как 0, а не просто не отображались вообще.Поэтому вывод, который я ищу:
raceName | raceDate | mostCrashes
---------------------------------
Race 1 |2018/01/21| 3
Race 2 |2018/01/21| 5
Race 1 |2018/09/11| 0
Race 1 |2016/03/14| 0
и т. Д.