Preparar las tablas
Esquema de varias tablas
- En los años 70, el tipo de
winner_seedcambia deNullable(String)aNullable(UInt8), yscoredeStringaArray(String). - En los años 80,
winner_seedyloser_seedcambian deNullable(UInt8)aNullable(UInt16). - En los años 90,
surfacecambia deStringaEnum('Hard', 'Grass', 'Clay', 'Carpet')y se añaden las columnaswalkoveryretirement.
Consultar varias tablas con merge
winner_seed usa distintos tipos en las distintas tablas:
variantType para comprobar el tipo de winner_seed en cada fila y luego variantElement para extraer el valor subyacente.
Cuando el tipo es String, lo convertimos en un número y luego hacemos la comparación.
A continuación se muestra el resultado de ejecutar la consulta:
¿De qué tabla proceden las filas al usar merge?
_table para hacerlo, como se muestra en la siguiente consulta:
walkover:
walkover es NULL en todos los casos excepto en atp_matches_1990s.
Tendremos que actualizar nuestra consulta para comprobar si la columna score contiene la cadena W/O cuando la columna walkover es NULL:
score es Array(String), tenemos que recorrer el array y buscar W/O, mientras que, si es de tipo String, podemos simplemente buscar W/O en el texto.