Настройка таблиц
Схема нескольких таблиц
- В 1970-х тип
winner_seedменяется сNullable(String)наNullable(UInt8), аscore— сStringнаArray(String). - В 1980-х
winner_seedиloser_seedменяются сNullable(UInt8)наNullable(UInt16). - В 1990-х
surfaceменяется сStringнаEnum('Hard', 'Grass', 'Clay', 'Carpet'), а также добавляются столбцыwalkoverиretirement.
Запрос к нескольким таблицам с помощью merge
winner_seed имеет разные types в разных таблицах:
variantType, чтобы проверить тип winner_seed в каждой строке, а затем variantElement, чтобы извлечь само значение.
Когда тип — String, мы приводим значение к числу, а затем выполняем сравнение.
Результат выполнения запроса показан ниже:
Из какой таблицы берутся строки при использовании merge?
_table, как показано в следующем запросе:
walkover:
walkover значение NULL везде, кроме atp_matches_1990s.
Нам нужно обновить наш запрос, чтобы проверять, содержит ли столбец score строку W/O, если в столбце walkover значение NULL:
score — Array(String), нужно пройтись по массиву и найти W/O, а если у него тип String, можно просто искать W/O в строке.