Transformar datos con SQL - guillermopetcho/Coursera-Certificate----Data-Analytics-Google GitHub Wiki
Los Analistas de datos suelen necesitar convertir los datos de un formato a otro para completar un análisis. Pero, ¿qué ocurre si utiliza SQL en lugar de una hoja de cálculo? Al igual que las hojas de cálculo, SQL utiliza reglas estándar para convertir un tipo de datos en otro. Si se pregunta por qué la transformación de datos es una habilidad importante que debe tener como analista de datos, piense que es como ser un controlador capaz de cambiar una rueda pinchada. Ser capaz de convertir datos al formato adecuado le acelera en su análisis. No tiene que esperar a que otra persona convierta los datos por usted. Una serie de iconos: una lupa, un libro abierto, un calendario con un lápiz, un poste indicador y un signo de pulgar hacia arriba
En esta lectura, repasará las conversiones que pueden realizarse utilizando la función CAST. También existen funciones más especializadas como COERCION para trabajar con números grandes, y UNIX_DATE para trabajar con fechas. UNIX_DATE devuelve el número de días que han pasado desde el 1 de enero de 1970 y se utiliza para comparar y trabajar con fechas a través de múltiples zonas horarias. Es probable que utilice CAST con más frecuencia.
Conversiones comunes
La siguiente tabla resume algunas de las conversiones más comunes realizadas con la función CAST. Consulte Reglas de conversión en SQL estándar para obtener una Lista completa de funciones y reglas asociadas.
La función CAST (sintaxis y ejemplos)
CAST es una función del Instituto Nacional Estadounidense de Estándares (ANSI) que se utiliza en muchos lenguajes de programación, incluido BigQuery. Esta sección proporciona la sintaxis de BigQuery y ejemplos de conversión de los tipos de datos de la primera columna de la tabla anterior. La sintaxis de la función CAST es la siguiente:
CAST(expression AS typename)
WHERE es la expresión de los datos a convertir y typename es el tipo de datos a devolver.
Conversión de un número en una cadena
La siguiente sentencia CAST devuelve una cadena a partir de un numérico identificado por la variable MyCount en la tabla llamada MyTable.
SELECT CAST(MyCount AS STRING) FROM MyTable
En la sentencia SQL anterior, ocurre lo siguiente:
SELECT indica que estará seleccionando datos de una tabla
CAST indica que va a convertir los datos seleccionados a un tipo de datos diferente
AS se antepone e identifica el tipo de datos al que está realizando el casting
STRING indica que está convirtiendo los datos a una cadena de caracteres
FROM indica de qué tabla está seleccionando los datos
Conversión de una cadena a un número
La siguiente sentencia CAST devuelve un número entero a partir de una cadena identificada por la variable MyVarcharCol en la tabla llamada MyTable. (Un número entero es cualquier número entero.)
SELECT CAST(MyVarcharCol AS INT) FROM MyTable
En la sentencia SQL anterior, ocurre lo siguiente:
SELECT indica que estará seleccionando datos de una tabla
CAST indica que va a convertir los datos que seleccione a un tipo de datos diferente
AS se antepone e identifica el tipo de datos al que está realizando el casting
INT indica que está convirtiendo los datos a un número entero
FROM indica de qué tabla está seleccionando los datos
Convertir una fecha en una cadena
La siguiente sentencia CAST devuelve una cadena a partir de una fecha identificada por la variable MyDate en la tabla llamada MyTable.
SELECT CAST(MyDate AS STRING) FROM MyTable
En la sentencia SQL anterior, ocurre lo siguiente:
SELECT indica que estará seleccionando datos de una tabla
CAST indica que va a convertir los datos seleccionados a un tipo de datos diferente
AS se antepone e identifica el tipo de datos al que está realizando el casting
STRING indica que está convirtiendo los datos a una cadena de caracteres
FROM indica de qué tabla está seleccionando los datos
Convertir una fecha en un dato de fecha y hora
Los valores datetime tienen el formato YYYY-MM-DD hh: mm: ss, por lo que la fecha y la hora se conservan juntas. La siguiente sentencia CAST devuelve un valor datetime a partir de una fecha.
SELECT CAST (MyDate AS DATETIME) FROM MyTable
En la sentencia SQL anterior, ocurre lo siguiente:
SELECT indica que va a seleccionar datos de una tabla
CAST indica que va a convertir los datos seleccionados a un tipo de datos diferente
AS se antepone e identifica el tipo de datos al que está realizando el casting
DATETIME indica que está convirtiendo los datos a un valor datetime
FROM indica de qué tabla está seleccionando los datos
La función SAFE_CAST
El uso de la función CAST en una consulta que falla devuelve un error en BigQuery. Para evitar errores en caso de consulta fallida, utilice en su lugar la función SAFE_CAST. La función SAFE_CAST devuelve un valor Nulo en lugar de un error cuando falla una consulta.
La sintaxis de SAFE_CAST es la misma que la de CAST. Simplemente sustituya la función directamente en sus consultas. La siguiente sentencia SAFE_CAST devuelve una cadena a partir de una fecha.
SELECT SAFE_CAST(MyDate AS STRING) FROM MyTable
Más Información:
Consulte estos Recursos para obtener más información sobre la Conversión de Datos utilizando otros dialectos de SQL (en lugar de BigQuery): CAST y CONVERT
: Documentación de referencia de SQL Server
Funciones y Operadores CAST de MySQL
: Documentación de referencia de MySQL
Cómo hacerlo: Casting de tipos SQL
: Blog sobre el moldeado de tipos que tiene enlaces a otras guías breves de SQL