Bienvenido de nuevo y gran trabajo en el último desafío semanal.
Ahora que sabemos la diferencia entre limpiar datos sucios y algunas técnicas generales de
limpieza de datos, vamos a centrarnos en la limpieza de datos mediante SQL.
A continuación aprenderemos sobre las diferentes funciones de limpieza de datos en
hojas de cálculo y SQL y cómo se puede utilizar SQL para limpiar grandes conjuntos de
datos.
También te mostraré cómo desarrollar algunas consultas de búsqueda básicas para bases de
datos y cómo aplicar funciones básicas de SQL para transformar datos y limpiar cadenas.
La limpieza de los datos es el último paso en el proceso de análisis de datos antes de pasar
al análisis propiamente dicho, y SQL tiene muchas herramientas excelentes que pueden
ayudarte a hacerlo.
Pero antes de empezar a limpiar las bases de datos, vamos a echar un vistazo más de cerca a
SQL y cuándo utilizarlo. Nos vemos luego.
Las agencias publicitarias reciben pagos de sus clientes para que publiciten sus marcas.
Esas agencias usan nuestros productos, usan ciertas plataformas de Google, plataformas de
publicidad, y yo ayudo a esas agencias a que aprovechen al máximo las plataformas, que
pongan en práctica distintas estrategias para ser las mejores de su clase.
Muchas personas que trabajan en las agencias publicitarias tienen que hacer informes para
mandarles a sus clientes.
Lleva mucho tiempo hacer y visualizar esos informes.
Lo que yo hago es ayudar a los equipos de practicantes y de analítica a usar cierto producto
que les permita crear esos informes con más rapidez y sencillez.
Si recién empiezas como analista de datos, esto abre muchas puertas, porque todo el mundo
está haciendo un seguimiento de los datos, todos usan datos o necesitan usarlos, no importa
la industria.
En todos los sectores, desde cuidado de la salud, hasta publicidad, pasando por comercio
electrónico y entretenimiento, todo y todos usan datos.
Así que todo el mundo te necesita como de analista de datos.
SQL nos facilita la vida cuando tenemos que analizar muchísimos datos distintos.
Hace relativamente poco que los programas de SQL que usamos ahora nos brindan
resultados instantáneos respecto de millones o miles de millones de datos.
Hace años, quizá cinco años más o menos, aunque podíamos analizar esas millones de filas,
teníamos que esperar quince o treinta minutos para obtener el resultado de la consulta.
Ahora es instantáneo, y eso es increíble.
Podemos hacer muchas más cosas con todo ese poder.
SQL me ayudó muchísimo en mi carrera porque es una de esas cosas fundamentales que
tienes que saber como analista de datos.
Hace un tiempo, no todo el mundo sabía usar SQL, así que saber usar SQL te daba una
ventaja competitiva.
Hoy en día, diría que más personas, quizá la mayoría sabe cómo usarlo.
Es una habilidad básica que todo el mundo quiere tener.
Así que si sabes usar SQL y eres analista de datos, seguramente te llamarán muchos
reclutadores. Y eso me parece muy bueno. Yo aprendí a usar SQL sola.
Así que mi conocimiento sobre SQL es algo muy, muy valioso para mí, porque es algo que
casi creé sola.
Y me da muchísima satisfacción. Esa es la razón por la que me gusta tanto SQL.
Una de las cosas más divertidas de SQL y otra razón por la que me gusta tanto usarlo
es que cuando escribes algo en una consulta, y presionas Control+Shift+Enter, o una vez
que haces la consulta, obtienes resultados casi al instante, según la plataforma que estés
usando.
Lo fascinante es pensar conceptualmente en todo el análisis que está haciendo la
computadora por ti según ese pequeño comando o ese código breve que escribiste.
Es tan poderoso si piensas en lo que pasa tras bambalinas.
Creo que es divertido examinarlo. Vivimos en un mundo de macrodatos.
Y cada vez son más y más grandes.
El poder de la computadora está creciendo exponencialmente también.
Con todos los datos que podemos monitorear, cuantos más datos monitoreemos, más
analistas de datos necesitaremos.
En pocas palabras: el futuro de nuestra carrera es realmente prometedor.
Mi nombre es Sally y trabajo como directora de analítica y mediciones de Google.
Hola de nuevo.
Bien, antes de repasar todas las formas en que los analistas de datos usan SQL para limpiar
los datos, quiero presentarte formalmente a SQL.
Ya hemos hablado mucho de SQL.
Has visto algunas bases de datos y algunas funciones básicas en SQL e incluso has visto
cómo se puede usar SQL para procesar datos.
Pero ahora vamos a definir SQL.
SQL es un lenguaje de consulta estructurado que los analistas utilizan para trabajar con
bases de datos.
Los analistas de datos suelen usar SQL para tratar conjuntos de datos muy grandes porque
puede manejar grandes cantidades de datos.
Y me refiero a billones de filas. Eso es un montón de filas que hay que manejar.
Así que déjame darte una idea de cuántos datos son realmente.
Imagina un conjunto de datos que contenga los nombres de los 8,000 millones de personas
del mundo.
Una persona media tardaría 101 años en leer los 8,000 millones de nombres.
SQL lo puede procesar en segundos.
Personalmente, creo que eso es genial.
Otras herramientas, como las hojas de cálculo, podrían tardar mucho tiempo en procesar
esa cantidad de datos, una de las principales razones por las que los analistas de datos
eligen usar SQL cuando se trata de grandes conjuntos de datos.
Déjame contarte un poco de la historia de SQL.
El desarrollo de SQL comenzó a principios de los años 70.
En 1970, Edgar F. Codd desarrolló la teoría sobre las bases de datos relacionales.
Puede que recuerdes haber aprendido sobre las bases de datos relacionales hace tiempo.
Se trata de una base de datos que contiene una serie de tablas que pueden conectarse para
formar relaciones.
En aquella época, IBM usaba un sistema de gestión de bases de datos relacionales llamado
System R.
Pues bien, los informáticos de IBM estaban tratando de encontrar una forma de manipular y
recuperar datos de IBM System R.
Su primer lenguaje de consulta era difícil de usar. Así que rápidamente pasaron a la
siguiente versión, SEQUEL.
En 1979, después de numerosas pruebas, SEQUEL, que ahora se escribe simplemente S-Q-
L, se hizo público.
En 1986, SQL se había convertido en el lenguaje estándar para la comunicación de bases de
datos relacionales, y todavía lo es.
Esta es otra razón por la que los analistas de datos eligen SQL.
Es un estándar bien conocido dentro de la comunidad.
La primera vez que usé SQL para extraer datos de una base de datos real fue para mi primer
trabajo como analista de datos.
Antes de eso no tenía ningún conocimiento previo sobre SQL.
Solo lo descubrí porque era un requisito para ese trabajo.
El responsable de la contratación para ese puesto me dio una semana para aprenderlo.
Así que me puse a investigar en Internet y acabé aprendiendo SQL por mi cuenta.
De hecho, me hicieron una prueba escrita como parte del proceso de solicitud de empleo.
Tuve que escribir consultas y funciones SQL en una pizarra.
Desde entonces utilizo SQL. Y me gusta mucho. Y al igual que aprendí SQL por mi cuenta,
quería recordarte que tú también puedes descubrir las cosas por ti mismo.
Hay montones de recursos en línea para aprender.
Así que no dejes que un requisito de trabajo se interponga en tu camino sin investigar
primero.
Ahora que sabemos un poco más sobre por qué los analistas eligen trabajar con SQL
cuando manejan muchos datos y un poco sobre la historia de SQL, seguiremos adelante y
aprenderemos algunas aplicaciones prácticas.
A continuación, revisaremos algunas de las herramientas que aprendimos en las hojas de
cálculo y descubriremos si alguna de ellas se aplica al trabajo con SQL.
Y, te adelanto, sí que se pueden aplicar. Nos vemos pronto.
Usar SQL como analista de datos júnior
En esta lectura, aprenderás más sobre cómo decidir cuándo usar SQL, o lenguaje de
consulta estructurado. Como analista de datos, tendrás que manejar muchos datos, y SQL es
una de las herramientas que pueden facilitarte mucho el trabajo. SQL es la principal forma
en que los analistas de datos extraen datos de las bases de datos. Como analista de datos,
trabajarás con bases de datos todo el tiempo, por lo que SQL es una habilidad clave.
Veamos cómo un analista de datos júnior utiliza SQL para resolver una tarea empresarial.
La tarea empresarial y el contexto
El analista de datos júnior de este ejemplo trabaja para una empresa de redes sociales. El 15
de febrero de 2020 se implantó un nuevo modelo de negocio y la empresa quiere saber
cómo se compara su crecimiento de usuarios con el año anterior. En concreto, se pidió al
analista de datos que averiguara cuántos usuarios se han incorporado desde el 15 de febrero
de 2020.
¿Funciones y fórmulas de las hojas de cálculo o consultas
SQL?
Antes de abordar esta cuestión, este analista de datos debe elegir qué herramienta usar. En
primer lugar, hay que pensar en dónde residen los datos. Si se almacenan en una base de
datos, entonces SQL es la mejor herramienta para el trabajo. Pero si se almacenan en una
hoja de cálculo, entonces habrá que realizar el análisis en esa hoja de cálculo. En ese
escenario, se podría crear una tabla dinámica de los datos y luego aplicar fórmulas y filtros
específicos a sus datos hasta obtener el número de usuarios que se unieron después del 15
de febrero. No es un proceso realmente complicado, pero implicaría muchos pasos.
En este caso, los datos se almacenan en una base de datos, por lo que tendrá que trabajar
con SQL. Y este analista de datos sabe que podría obtener los mismos resultados con una
sola consulta SQL:
SELECT COUNT(DISTINCT user_id) AS count_of_unique_users FROM table WHERE
join_date >= ‘2020-02-15’
Tanto las hojas de cálculo como el SQL tienen sus ventajas y desventajas:
Características de las hojas de
Características de las bases de datos de SQL
cálculo
Conjuntos de datos más pequeños Conjuntos de datos más grandes
Ingreso de datos en forma manual Acceso a tablas de una base de datos
Creación de gráficos y
Preparación de los datos para su posterior análisis en
visualizaciones en el mismo
otro software
programa
Corrección ortográfica incorporada
Funcionalidad rápida y potente
y otras funciones útiles
Mejor cuando se trabaja en solitario Ideal para el trabajo colaborativo y el seguimiento de
en un proyecto las consultas realizadas por todos los usuarios
A la hora de la verdad, el lugar donde se encuentren los datos definirá qué herramienta
utilizar. Si trabajas con datos que ya están en una hoja de cálculo, lo más probable es que
sea ahí donde realices tu análisis. Y si estás trabajando con datos almacenados en una base
de datos, SQL será la mejor herramienta que puedas usar para tu análisis. A continuación
aprenderás más sobre SQL, para que estés preparado para abordar cualquier problema de
negocios con la mejor herramienta posible.
¡Hola! Hasta ahora, hemos
aprendido sobre las hojas de cálculo y SQL.
Aunque hay muchas
diferencias entre las hojas de cálculo y SQL,
también encontrarás algunas similitudes.
Veamos qué tienen en común y en qué se diferencian
las hojas de cálculo y SQL.
En verdad, las hojas de cálculo y el SQL tienen mucho en común.
Específicamente, hay herramientas que puedes usar tanto en
las hojas de cálculo y en SQL para obtener resultados similares.
Ya hemos aprendido sobre
algunas herramientas para limpiar datos en
las hojas de cálculo, lo que significa que ya
conoces algunas herramientas que puedes utilizar en SQL.
Por ejemplo, puedes seguir realizando operaciones aritméticas,
usar fórmulas y unir datos cuando utilizas SQL, por lo que
vamos a aprovechar las habilidades que hemos aprendido en las hojas de cálculo
y las usaremos para hacer trabajos aún más complejos en SQL.
He aquí un ejemplo de lo que quiero decir con trabajo más complejo.
Si estuviéramos trabajando con datos sanitarios para
un hospital, tendríamos que ser capaces de
acceder y procesar muchos datos.
Podríamos necesitar datos demográficos, como
nombres, fechas de nacimiento y direcciones de los pacientes,
información sobre su seguro o sus consultas anteriores,
datos de salud pública o incluso
datos generados por los usuarios para añadirlos a sus historias clínicas.
Todos estos datos se almacenan en
diferentes lugares, quizás incluso en
diferentes formatos, y cada lugar puede tener
millones de filas y cientos de tablas relacionadas.
Son demasiados datos para introducirlos
manualmente, incluso para un solo hospital.
Ahí es donde SQL resulta útil.
En lugar de tener que buscar en
cada fuente de datos individual y registrarla en
nuestra hoja de cálculo, podemos usar SQL para extraer
toda esta información de
diferentes ubicaciones en nuestra base de datos.
Ahora, digamos que queremos encontrar algo específico en todos
estos datos, como cuántos pacientes
con un determinado diagnóstico han llegado hoy.
En una hoja de cálculo podemos usar
la función COUNTIF para averiguarlo, o podemos
combinar las consultas COUNT y WHERE en
SQL para averiguar cuántas filas coinciden con nuestros criterios de búsqueda.
Esto nos dará resultados similares, pero funciona con
un conjunto de datos mucho más grande y complejo.
Ahora, hablemos de las
diferencias entre las hojas de cálculo y SQL.
Primero, es importante entender que
las hojas de cálculo y SQL son cosas diferentes.
Las hojas de cálculo se generan con
un programa como Excel o Google Sheets.
Estos programas están diseñados para
ejecutar ciertas funciones incorporadas.
Por otra parte, SQL es
un lenguaje que se puede utilizar para interactuar
con los programas de bases de datos, como
Oracle MySQL o Microsoft SQL Server.
Las diferencias entre
ambos están principalmente en cómo se utilizan.
Si un analista de datos recibe datos
en forma de hoja de cálculo, probablemente
hará su limpieza de datos
y el análisis dentro de esa hoja de cálculo, pero si está
trabajando con un gran conjunto de datos
con más de un millón de filas
o múltiples archivos dentro de una base de datos, es más fácil,
más rápido y más replicable utilizar SQL.
SQL puede acceder y utilizar
muchos más datos porque puede extraer información de
diferentes fuentes de la base de datos de forma automática,
a diferencia de las hojas de cálculo, que solo
tienen acceso a los datos que se introducen.
Esto también significa que los datos se almacenan en varios lugares.
Un analista de datos puede utilizar hojas de cálculo
almacenadas localmente en su disco duro o en su
nube personal cuando está trabajando solo, pero
si está en un equipo más grande con múltiples analistas que
necesitan acceder y utilizar datos almacenados en
una base de datos, SQL podría ser una herramienta más útil.
Debido a estas diferencias, las hojas de cálculo
y SQL se utilizan para cosas diferentes.
Como ya sabes, las hojas de cálculo son buenas para
conjuntos de datos más pequeños y cuando se trabaja de forma independiente.
Además, las hojas de cálculo tienen funcionalidades incorporadas,
como el corrector ortográfico, que puede ser muy útil.
SQL es genial para trabajar con conjuntos de datos más grandes,
incluso billones de filas de datos.
Como SQL ha sido el lenguaje estándar para comunicarse con las bases de datos durante
tanto tiempo, puede ser adaptado y usado por múltiples programas de bases de datos.
SQL también registra los cambios en las consultas, lo que facilita
el seguimiento de los cambios en
todo el equipo si se trabaja en colaboración.
A continuación, aprenderemos más consultas y funciones en
SQL que te darán nuevas herramientas para trabajar.
Incluso podrás aprender a usar las herramientas de la hoja de cálculo
en formas totalmente nuevas. Hasta la próxima.
Hola de nuevo.
Hasta ahora aprendimos que SQL tiene
algunas de las mismas herramientas que las hojas de cálculo,
pero a una escala mucho mayor.
En este video, aprenderemos algunas de
las consultas SQL más utilizadas que puedes
empezar a usar para tu propia limpieza de datos
y su posterior análisis. ¡Empecemos!
Hemos hablado de las consultas como solicitudes que se hacen a la
base de datos para pedirle que haga cosas por ti.
Las consultas son una parte importante del uso de SQL.
Después de todo, es un lenguaje de consulta estructurado.
Las consultas pueden ayudarte a hacer muchas cosas,
pero hay algunas comunes que los analistas de datos
usan todo el tiempo. Así que vamos a empezar por ahí.
Primero, te mostraré cómo usar la consulta SELECT.
He mencionado esta antes,
pero ahora añadiré algunas cosas nuevas para que las probemos.
Ahora mismo, el visor de la tabla está en blanco
porque todavía no hemos extraído nada de la base de datos.
Para este ejemplo, la tienda con la que estamos trabajando
está organizando un sorteo
para los clientes de ciertas ciudades.
Tenemos una base de datos que contiene
información de los clientes que podemos usar para
determinar qué clientes pueden participar en
el sorteo. Hagamos eso ahora.
Podemos usar SELECT para especificar
exactamente con qué datos queremos interactuar en una tabla.
Si combinamos SELECT con FROM,
podemos extraer datos de cualquier tabla en
esta base de datos siempre que
sepamos cómo se llaman las columnas y las filas.
Podríamos querer sacar los datos sobre
nombres de clientes y ciudades de una de las tablas.
Para ello, podemos introducir SELECT nombre, coma,
ciudad FROM
cliente guión bajo datos punto cliente guión bajo dirección.
Para obtener esta información de
la tabla cliente guión bajo domicilio,
que se encuentra en el conjunto de datos cliente guión bajo datos.
SELECT y FROM ayudan a especificar
qué datos queremos extraer de la base de datos y utilizar.
También podemos insertar nuevos datos en
una base de datos o actualizar los datos existentes.
Por ejemplo, tal vez tengamos
un nuevo cliente que queremos insertar en esta tabla.
Podemos usar la consulta INSERT INTO
para introducir esa información.
Comencemos con el lugar donde estamos tratando de insertar estos datos,
la tabla cliente guión bajo domicilio.
También queremos especificar a qué columnas estamos añadiendo
estos datos escribiendo sus nombres en los paréntesis.
De esta manera, SQL puede decirle a la base de datos
exactamente dónde estamos introduciendo nueva información.
Luego le diremos qué valores estamos introduciendo.
Ejecutamos la consulta, y como si nada,
lo agrega a nuestra tabla por nosotros.
Ahora, digamos que solo necesitamos
cambiar la dirección de un cliente.
Bien, podemos decirle a la base de datos que la actualice por nosotros.
Para ello, tenemos que decirle que estamos tratando de
actualizar la tabla cliente guión bajo domicilio.
Luego tenemos que decirle
qué valor estamos tratando de cambiar.
Pero también hay que indicarle
dónde estamos haciendo ese cambio
específicamente para que no
cambie cada dirección en la tabla.
Ahí está. Ahora la dirección de este cliente fue actualizada.
Si queremos crear una nueva tabla para esta base de datos,
podemos usar la instrucción CREATE TABLE IF NOT EXISTS.
Recuerda que el hecho de ejecutar una consulta SQL
no crea realmente una tabla para los datos que extraemos.
Solo los almacena en nuestra memoria local.
Para guardarla, tendremos que descargarla como
una hoja de cálculo o guardar el resultado en una nueva tabla.
Como analista de datos,
hay algunas situaciones
en las que podrías necesitar hacer eso.
Realmente depende de
qué tipo de datos estés extrayendo y con qué frecuencia.
Si solo estás usando un número total de clientes,
probablemente no necesites un archivo CSV
o una nueva tabla en tu base de datos.
Si estás usando el número total de clientes por día
para hacer algo como el seguimiento de
una promoción de fin de semana en una tienda,
podrías descargar esos datos como
un archivo CSV para poder visualizarlo en una hoja de cálculo.
Pero si se te pide que extraigas
esta tendencia de forma regular,
puedes crear una tabla que se
actualiza automáticamente con la consulta que hayas escrito.
De este modo, puedes descargar directamente
los resultados cuando los necesites para un informe.
Otra cosa positiva a tener en cuenta,
si estás creando muchas tablas dentro de una base de datos,
es que querrás usar
la instrucción DROP TABLE IF EXISTS
para limpiarla después.
Es una buena limpieza.
Es probable que no elimines
tablas existentes muy a menudo.
Después de todo, son los datos de la empresa, y
no querrás borrar
datos importantes de su base de datos.
Pero puedes asegurarte de limpiar
las tablas que has hecho personalmente para que
no haya tablas viejas o sin usar con
información redundante desordenando la base de datos.
Ahí está. Ahora viste algunas de
las consultas SQL más usadas en acción.
Definitivamente hay más palabras clave de consulta para que
puedas aprender y combinaciones únicas
que te ayudarán a trabajar con las bases de datos.
Pero este es un buen lugar para comenzar.
Próximamente, aprenderemos aún más sobre las consultas en
SQL y cómo usarlas para
limpiar nuestros datos. Hasta la próxima.
Hola, soy Evan. Soy
gerente de portfolio de aprendizaje en Google.
Creo que no soy el típico empleado de ciencias informáticas
ni me interesa demasiado la ingeniería,
pero sí me gusta muchísimo trabajar con números, entonces
me decidí por la contabilidad. Y,
después de dos años estudiando contabilidad, me dije:
"La verdad, no quiero hacer todo esto a mano".
Así que fui a mi primera clase de sistemas de información,
donde aprendí el lenguaje SQL, o lenguaje de consulta estructurada,
y me abrió por completo la cabeza.
El curso ofrecía dos cosas: conocimiento sobre hojas de cálculo, donde
por ejemplo, cambiabas el valor de una celda
y toda la hoja de cálculo cambiaba porque
estaban todos esos campos de cálculo increíbles,
y también ofrecía SQL, donde podía consultar
millones y millones de filas de datos en cuestión de segundos.
Fue amor a primera vista por los datos.
He dedicado mi vida y
mi carrera a comunicar
esa pasión y a invitar a otros a saber
lo que pueden hacer con sus datos.
¿Por qué SQL es un lenguaje tan increíble para aprender primero?
Por empezar, hay mucho que puedes hacer con él.
Pero, primero, una salvedad:
No soy especialista en ciencias informáticas.
No conozco en profundidad ni Java ni Python,
y dudaba un poco acerca de aprender
un lenguaje informático.
Es casi como un lenguaje de programación pero, en realidad,
verás que puedes escribir tu primer enunciado en SQL
en cinco minutos o menos.
Créanme cuando les digo que SQL es uno de esos lenguajes
de fácil aprendizaje y es muy divertido conocerlo a fondo.
Hace 15 años que estudio SQL.
Hace 10 que lo enseño.
Como ya van a ver en algunos de estos
laboratorios prácticos,
es muy fácil obtener
datos de una base de datos o un conjunto de datos.
Solo tienes que seleccionar columnas
de la base de datos que quieras
analizar, y en un abrir y cerrar de ojos, obtienes los datos que necesitas.
Ahora bien, la parte más divertida
es ponerse a explorar un poco más y decir:
¿Podré modificar mi consulta,
agregar estas columnas,
filtrar este conjunto de datos de otra forma,
compartir esto con mis colegas?
Se supone que es un lenguaje de consulta interactivo,
y "consultar" significa "hacer una pregunta".
La verdad es que
la sintaxis para aprender SQL
se parece mucho a las reglas de un juego de ajedrez:
es muy fácil de aprender.
La parte difícil no es
escribir la sintaxis,
eso es así con cualquier lenguaje de programación,
sino pensar cuál es la pregunta
que quieres responder con tus datos.
Lo que yo te recomendaría
es que explores a fondo cualquier conjunto de datos que tengas.
Incluso antes de ponerte a tipear, dedica mucho tiempo
a pensar en qué conjuntos de datos o qué información
puedes obtener de tus datos. Y, luego, comienza a divertirte.
Hay muchas formas de escribir
la misma fórmula correcta en SQL.
¿Por qué no pruebas alguna, la compartes con tus colegas,
y ves qué tipo de datos obtienes para analizar? Buena suerte.
Es genial tenerte de vuelta.
Ahora que sabemos algunas consultas básicas de SQL y dedicamos algo de tiempo a
trabajar en una base de datos,
apliquemos ese conocimiento a algo más de lo que hemos estado hablando:
preparar y limpiar los datos.
Ya sabes que limpiar y
completar los datos antes de analizarlos es un paso importante.
Así que en este video, te mostraré algunas formas en las que SQL puede ayudarte a hacer
precisamente eso,
incluyendo cómo eliminar duplicados,
así como cuatro funciones que te ayudarán a limpiar las variables de cadena.
Anteriormente, cubrimos cómo eliminar los duplicados en las hojas de cálculo usando
la herramienta Quitar duplicados.
En SQL
podemos hacer lo mismo incluyendo DISTINCT en nuestra instrucción SELECT.
Por ejemplo, digamos que la empresa para la que trabajamos
tiene una promoción especial para los clientes de Ohio.
Queremos obtener los ID de cliente de los clientes que viven en Ohio.
Pero algunos datos de los clientes se han introducido varias veces.
Podemos obtener estos ID de cliente
escribiendo SELECT customer_id FROM
customer_data.customer_address.
Esta consulta nos dará los duplicados si existen en la tabla.
Si el ID de cliente 9080 aparece tres veces en nuestra tabla,
nuestros resultados tendrán tres de ese ID de cliente.
Pero no queremos eso. Queremos una lista de todos los ID de clientes únicos.
Para ello, añadimos DISTINCT a nuestra instrucción SELECT escribiendo
SELECT DISTINCT customer_id FROM customer_data.customer_address.
Ahora, el ID de cliente 9080 aparecerá solo una vez en nuestros resultados.
Tal vez recuerdes que hemos hablado antes de las cadenas de texto como un grupo de
caracteres
dentro de una celda, comúnmente compuesta por letras, números o ambos.
Estas cadenas de texto a veces deben limpiarse.
Tal vez se hayan introducido de forma diferente en distintos lugares de tu base de datos, y
ahora no coinciden.
En esos casos, tendrás que limpiarlas antes de poder analizarlas.
Así que aquí hay algunas funciones que puedes usar en SQL para manejar variables de
cadena.
Es posible que reconozcas algunas de estas funciones de cuando hablamos de
hojas de cálculo.
Ahora es el momento de verlas trabajar de una nueva manera.
Extrae el conjunto de datos que compartimos justo antes de este video.
Y puedes seguirme paso a paso durante el resto de este video.
La primera función que quiero mostrarte es LENGTH, que ya hemos encontrado antes.
Si ya sabemos la longitud que deben tener nuestras variables de cadena,
podemos usar LENGTH para comprobar que nuestras variables de cadena son consistentes.
En algunas bases de datos, esta consulta se escribe LEN, pero hace lo mismo.
Digamos que estamos trabajando con la tabla customer_address de nuestro
ejemplo anterior.
Podemos asegurarnos de que todos los códigos de país tienen la misma longitud usando
LENGTH en cada una de estas cadenas.
Así que para escribir nuestra consulta SQL, vamos a empezar con SELECT y FROM.
Sabemos que nuestros datos provienen de la tabla customer_address
dentro del conjunto de datos customer_data.
Así que añadimos customer_data.customer_address después de la cláusula FROM.
Luego, bajo SELECT, escribiremos LENGTH, y
luego la columna que queremos comprobar, país.
Para recordarnos qué es esto,
podemos etiquetar esta columna en nuestros resultados como letters_in_country.
Así que añadimos AS letters_in_country,
después de LENGTH(country).
El resultado que obtenemos es una lista del número de letras de cada país que aparece para
cada uno de nuestros clientes.
Parece que casi todos son 2,
lo que significa que el campo país contiene solo dos letras.
Pero observamos uno que tiene 3. Eso no es bueno.
Queremos que nuestros datos sean coherentes.
Así que vamos a comprobar qué países aparecen incorrectamente en nuestra tabla.
Podemos hacerlo poniendo la función LENGTH(country) que
creamos en la cláusula WHERE.
Porque le estamos diciendo a SQL que filtre los datos para mostrar solo
clientes cuyo país contenga más de dos letras.
Así que ahora escribiremos SELECT country
FROM customer_data.customer_address
WHERE LENGTH(country) greater than 2.
Cuando ejecutamos esta consulta, ahora obtenemos los dos países cuyo número de letras es
mayor que el 2 que esperamos encontrar.
Los países listados incorrectamente aparecen como USA en lugar de US.
Si creáramos esta tabla, podríamos actualizarla para que
esta entrada aparezca como US en lugar de USA.
Pero en este caso, no hemos creado esta tabla, por lo que no debemos actualizarla.
Aún tenemos que arreglar este problema para poder sacar una lista de todos los clientes
en los Estados Unidos, incluidos los dos que tienen USA en lugar de US.
La buena noticia es que podemos tener en cuenta
este error en nuestros resultados usando la función de subcadena en nuestra consulta SQL.
Para escribir nuestra consulta SQL, empecemos por escribir
la estructura básica, SELECT, FROM, WHERE.
Sabemos que nuestros datos provienen de la tabla customer_address
del conjunto de datos customer_data.
Así que escribimos customer_data.customer_address,
después de FROM.
A continuación, le decimos a SQL qué datos queremos que nos dé.
Queremos todos los clientes de los Estados Unidos por sus identificaciones.
Así que escribimos customer_id después de SELECT.
Por último, queremos que SQL filtre solo los clientes estadounidenses.
Así que usamos la función de subcadena después de la cláusula WHERE.
Vamos a utilizar la función de subcadena para sacar las dos primeras letras de cada
país para que todos sean coherentes y solo contengan dos letras.
Para usar la función de subcadena,
primero tenemos que indicarle a SQL la columna en la que encontramos este error, país.
A continuación, especificamos con qué letra debe empezar.
Queremos que SQL saque las dos primeras letras, así que
empezaremos por la primera letra, entonces escribimos 1.
A continuación, tenemos que decirle a SQL cuántas letras, incluida la primera, debe
extraer.
Como queremos las dos primeras letras,
necesitamos que SQL extraiga dos letras en total, así que escribimos 2.
Esto nos dará las dos primeras letras de cada país.
Queremos solo US, por lo que estableceremos esta función como igual a US.
Cuando ejecutamos esta consulta, obtenemos una lista de todos los ID de clientes
cuyo país es US, incluidos los clientes que tenían USA en lugar de US.
Revisando los resultados, parece que tenemos un par de duplicados en los que
el ID del cliente aparece varias veces.
¿Recuerdas cómo nos deshacemos de los duplicados?
Añadimos DISTINCT antes de customer_id.
Así que ahora cuando ejecutamos esta consulta,
tenemos nuestra lista final de ID de clientes que viven en los Estados Unidos.
Por último, veamos la función TRIM, que ya has visto antes.
Es muy útil si encuentras entradas con espacios extra y
necesitas eliminar esos espacios adicionales para mantener la coherencia.
Por ejemplo, vamos a comprobar la columna de estado en nuestra tabla customer_address.
Al igual que hicimos con la columna de país,
queremos asegurarnos de que la columna de estado tiene el mismo número de letras.
Vamos a volver a usar la función LENGTH para saber si tenemos algún estado que tenga
más
de dos letras, que es lo que esperamos encontrar en nuestra tabla de datos.
Comenzamos a escribir nuestra consulta SQL escribiendo la estructura
SQL básica de SELECT, FROM, WHERE.
Estamos trabajando con la tabla customer_address en el conjunto de datos customer_data.
Así que escribimos customer_data.customer_address
después de FROM.
A continuación, le decimos a SQL qué queremos que extraiga.
Queremos que nos dé cualquier estado que tenga más de dos letras,
así que escribimos state, después de SELECT.
Por último, queremos que SQL filtre los estados que tengan más de dos letras.
Esta condición se escribe en la cláusula WHERE.
Así que escribimos LENGTH(state), y
que debe ser mayor que 2 porque queremos
los estados que tienen más de dos letras.
Queremos averiguar cómo son los estados que aparecen incorrectamente, si tenemos
alguno.
Cuando ejecutamos esta consulta, obtenemos un resultado.
Tenemos un estado que tiene más de dos letras.
Pero espera, ¿cómo puede este estado que parece tener dos letras,
O y H de Ohio, tener más de dos letras?
Sabemos que hay más de dos caracteres porque usamos
la instrucción LENGTH(state) > 2 en la cláusula WHERE al filtrar los resultados.
Eso significa que los caracteres extra que SQL está contando deben ser entonces un
espacio.
Debe haber un espacio después de la H.
Aquí es donde usaríamos la función TRIM.
La función TRIM elimina los espacios.
Así que escribamos una consulta SQL que tenga en cuenta este error.
Digamos que queremos una lista de todas los ID de los clientes que viven en "OH" para
Ohio.
Comenzaremos con la estructura básica SQL: FROM, SELECT, WHERE.
Sabemos que nuestros datos provienen de la tabla customer_address
del conjunto de datos customer_data, entonces
escribimos en customer_data.customer_address después de FROM.
Después, le decimos a SQL qué datos queremos.
Queremos que SQL nos dé los ID de los clientes que viven en Ohio,
así que escribimos customer_id después de SELECT.
Como sabemos que tenemos algunas entradas de clientes duplicadas,
seguiremos adelante y escribiremos DISTINCT antes de customer_id
para eliminar cualquier ID de cliente duplicado que aparezca en nuestros resultados.
Por último, queremos que SQL nos proporcione los ID de cliente de
los clientes que viven en Ohio.
Estamos pidiendo a SQL que filtre los datos, por lo que esto pertenece a la cláusula
WHERE.
Aquí es donde usaremos la función TRIM.
Para usar la función TRIM, le decimos a SQL la columna de la que queremos
eliminar los espacios, que es el estado en nuestro caso.
Y queremos solo los clientes de Ohio, así que escribimos = 'OH'.
Eso es todo. Tenemos los ID de cliente de los clientes que viven en Ohio,
incluyendo ese cliente con el espacio extra después de la H.
Asegurarte de que tus variables de cadena son completas y coherentes te ahorrará
mucho tiempo más tarde al evitar errores o cálculos erróneos.
Por eso limpiamos los datos en primer lugar.
Esperemos que funciones como longitud, subcadena y recorte te den
las herramientas que necesitas para empezar a trabajar con variables de cadena en tus
propios conjuntos de datos.
A continuación, veremos otras formas de trabajar con cadenas
y funciones de limpieza más avanzadas.
Entonces estarás listo para empezar a trabajar en SQL por tu cuenta.
Nos vemos pronto.
Hola y bienvenido nuevamente.
Hasta ahora hemos visto
algunas consultas básicas de SQL y
funciones que pueden ayudarte a limpiar tus datos.
También hemos revisado algunas formas de tratar con
variables de cadena en SQL para facilitar tu trabajo.
Prepárate para aprender más funciones
para tratar con cadenas en SQL.
Créeme, estas funciones serán
realmente útiles en tu trabajo como analista de datos.
En este video, revisaremos nuevamente las cadenas y aprenderemos
cómo usar la función CAST para formatear correctamente los datos.
Cuando se importan datos que no
existen en tus tablas SQL,
los tipos de datos del nuevo conjunto de datos
pueden no haber sido importados correctamente.
Aquí es donde la función CAST resulta útil.
Básicamente, CAST puede usarse para convertir
cualquier cosa de un tipo de datos a otro.
Veamos un ejemplo.
Imaginemos que estamos trabajando con la tienda de muebles Lauren's.
La propietaria ha estado recopilando
datos de transacciones durante el último año,
pero acaba de descubrir que en realidad no pueden organizar
sus datos porque no habían sido formateados correctamente.
Vamos a ayudarla convirtiendo
nuestros datos para que vuelvan a ser útiles.
Por ejemplo, digamos que queremos ordenar todas las compras
por purchase_price en orden descendente.
Eso significa que queremos que
la compra más cara
aparezca primero en los resultados.
Para escribir la consulta SQL,
comenzamos con la estructura básica de SQL.
SELECT, FROM, WHERE.
Sabemos que los datos se almacenan en
la tabla customer_purchase en el conjunto de datos customer_data.
Escribimos customer_data.customer_purchase después de FROM.
Después, le decimos a SQL qué datos
debe arrojarnos en la cláusula SELECT.
Queremos ver los datos de purchase_price,
así que escribimos purchase_price después de SELECT.
Lo siguiente es la cláusula WHERE.
No estamos filtrando ningún dato ya que queremos que se muestren
todos los precios de compra
de modo que podamos eliminar la cláusula WHERE.
Finalmente, para ordenar purchase_price en orden descendente,
escribimos ORDER BY purchase_price,
DESC al final de nuestra consulta.
Vamos a ejecutar esta consulta. Vemos que
89.85 aparece en la parte superior con 799.99 debajo.
Pero sabemos que 799.99 es un número mayor que 89.85.
La base de datos no reconoce que estos son números,
por lo que no los ordenó de esa manera.
Si volvemos a la tabla customer_purchase
y echamos un vistazo a su esquema,
podemos ver el tipo de datos que la base de datos
piensa que es compra guión bajo precio.
Aquí, la base de datos piensa que
compra guión bajo precio es una cadena,
cuando de hecho, es un flotante,
que es un número que contiene un decimal.
Por eso 89.85 aparece antes de 799.99.
Cuando empezamos las letras,
empezamos por la primera letra
antes de pasar a la segunda.
Si queremos ordenar las palabras
manzana y naranja en orden descendente,
empezamos por las primeras letras m y n.
Como la n viene después de la m,
naranja aparecerá primero, y luego manzana.
La base de datos hizo lo mismo con 89.85 y 799.99.
Empezó con la primera letra,
que en este caso era un 8 y un 7 respectivamente.
Como el 8 es mayor que el 7,
la base de datos ordenó primero 89.85 y luego 799.99.
Debido a que la base de datos trató estos como cadenas de texto,
la base de datos no reconoce estas cadenas como flotantes
porque aún no fueron
convertidas para que coincidan con ese tipo de datos.
Conversión de tipos significa convertir los datos
de un tipo a otro,
que es lo que haremos con la función CAST.
Usamos la función CAST para reemplazar purchase_price por
el nuevo purchase_price que
la base de datos reconoce como flotante en vez de como cadena.
Empezamos sustituyendo purchase_price con CAST.
Luego le decimos a SQL el campo que queremos cambiar,
que es el campo purchase_price.
Después le decimos el tipo de datos al que queremos cambiar purchase_price,
que es el tipo de datos flotante.
BigQuery almacena los números en un sistema de 64 bits.
El tipo de datos flotante se denomina
como float64 en nuestra consulta.
Esto puede ser ligeramente diferente en otras plataformas SQL,
pero básicamente el 64 y float64 solo
indican que estamos lanzando números en
el sistema de 64 bits como flotantes.
También necesitamos ordenar este nuevo campo,
así que cambiamos purchase_price después de
ORDER BY a CAST compra guión bajo precio como float64.
Así es como usamos
la función CAST para que SQL reconozca
la columna purchase_price como
flotante en lugar de cadenas de texto.
Ahora podemos empezar nuestras compras por purchase_price.
Así de fácil, la tienda de muebles Lauren's tiene
datos que pueden usarse realmente para el análisis.
Como analista de datos,
se te pedirá que localices y organices los datos muchas veces,
por lo que querrás asegurarte de
convertir entre tipos de datos desde el principio.
Las empresas como esta tienda de muebles están
interesadas en datos de ventas oportunos,
y hay que ser capaz de
tenerlo en cuenta en su análisis.
La función CAST también puede usarse para cambiar
cadenas en otros tipos de datos,
como fecha y hora.
Como analista de datos,
es posible que uses datos de varias fuentes.
Parte de tu trabajo consiste en asegurarte de que los datos
de esas fuentes sean reconocibles
y utilizables en tu base de datos para que
no tengas problemas con el análisis.
Ahora ya sabes cómo hacerlo.
La función CAST es
una gran herramienta que puedes usar para limpiar los datos.
Próximamente, veremos otras funciones avanzadas
que puedes añadir a tu caja de herramientas. Nos vemos pronto.
¡Hola! Qué bueno volver a verte.
Hasta ahora, vimos algunas funciones SQL en acción.
En este video, repasaremos más usos de CAST,
y luego aprenderemos sobre CONCAT y
COALESCE. ¡Empecemos!
Antes hablamos de la función CAST,
que nos permite convertir cadenas de texto en flotantes.
Señalé que la función CAST puede
usarse para cambiar a otros tipos de datos también.
Veamos otro ejemplo de cómo
puedes utilizar CAST en tu propio trabajo de datos.
Tenemos los datos de la transacción con los que estábamos trabajando
en nuestro ejemplo de la tienda de muebles Lauren's.
Pero ahora, vamos a comprobar el campo de la fecha de compra.
La dueña de la tienda de muebles nos ha pedido que miremos
las compras que se produjeron durante
su período de promoción de ventas en diciembre.
Escribamos una consulta SQL que extraerá la fecha y
purchase_price de todas las compras
que ocurrieron entre el 1 de diciembre
de 2020 y el 31 de diciembre de 2020.
Comenzamos escribiendo la estructura básica de SQL:
SELECT, FROM y WHERE.
Sabemos que los datos provienen de
la tabla customer_purchase en el conjunto de datos customer_data,
entonces escribimos customer_data.customer_purchase después de FROM.
Después, le decimos a SQL qué datos extraer.
Como queremos la fecha y purchase_price,
los añadimos en la instrucción SELECT.
Finalmente, queremos que SQL filtre las
compras que ocurrieron solamente en diciembre.
Escribimos date BETWEEN '2020-12-01' AND
'2020-12-31' en la cláusula WHERE.
Vamos a ejecutar la consulta.
Hubo cuatro compras en diciembre,
pero el campo de la fecha parece extraño.
Eso es porque la base de datos reconoce
este campo de fecha como datetime,
que consiste en la fecha y la hora.
Nuestra consulta SQL aún funciona correctamente, incluso si
el campo de la fecha es datetime en lugar de date.
Pero podemos decirle a SQL que convierta
el campo date en el tipo de datos
date para ver solo el día y no la hora.
Para hacerlo, otra vez usamos la función CAST().
Usaremos la función CAST() para reemplazar el campo fecha en
nuestra instrucción SELECT con
el nuevo campo date que
mostrará la fecha y no la hora.
Podemos hacerlo ingresando CAST() y agregando
la fecha como el campo que queremos cambiar.
Después, le decimos a SQL el tipo de datos que en cambio queremos,
que es el tipo de datos date.
Ahí está. Ahora podemos tener
resultados más limpios para las compras que
se produjeron durante el período de ventas de diciembre.
CAST es una función súper útil
para limpiar y ordenar los datos,
por lo que quería que la vieras
en acción otra vez.
A continuación, vamos a ver la función CONCAT.
CONCAT te permite sumar cadenas para crear
nuevas cadenas de texto que se pueden usar como claves únicas.
Volviendo a nuestra tabla customer_purchase,
vemos que la tienda de muebles vende
diferentes colores del mismo producto.
La dueña quiere saber si los clientes prefieren
determinados colores, para poder
gestionar el inventario de la tienda en consecuencia.
El problema es que product_code
es el mismo, independientemente del color del producto.
Tenemos que encontrar otra manera de separar los productos por colores,
para poder saber si los clientes prefieren
un color sobre los demás.
Usaremos CONCAT para producir una clave única que
nos ayude a distinguir los productos por
color y así contarlos más fácilmente.
Escribamos nuestra consulta SQL comenzando con
la estructura básica: SELECT, FROM y WHERE.
Sabemos que los datos provienen de
la tabla customer_purchase
y del conjunto de datos customer_data.
Escribimos "customer_data.customer_purchase" después de FROM
Después, le decimos a SQL qué datos extraer.
Aquí utilizamos la función CONCAT() para obtener
esa clave única de producto y color.
Así es que escribimos CONCAT(),
la primera columna que queremos,
product_code, y la otra columna
que queremos, product_color.
Por último, digamos que queremos ver los sofás,
por lo que filtramos por sofás escribiendo
product = 'couch' en la cláusula WHERE.
Ahora podemos contar cuántas veces
se compró cada sofá y
averiguar si los clientes prefieren
un color sobre los demás.
Con CONCAT, la tienda de muebles puede averiguar
qué colores de sofás son los más populares y pedir más.
Tengo una última función avanzada
para mostrarte, COALESCE.
COALESCE puede utilizarse para mostrar valores que no son nulos en una lista.
Los valores nulos son los que faltan.
Si tienes un campo que es opcional en tu tabla,
tendrá un valor nulo en ese campo para las filas
que no tienen valores apropiados para poner allí.
Abramos la tabla customer_purchase
para mostrarte a qué me refiero.
En la tabla customer_purchase
podemos ver un par de filas donde
falta información sobre el producto.
Esa es la razón por la que vemos valores nulos.
Pero para las filas en las que el nombre del producto es nulo,
vemos que hay datos de product_code
que podemos usar en su lugar.
Preferimos que SQL nos muestre el nombre del producto,
como cama o sofá,
porque es más fácil de leer.
Pero si el nombre del producto no existe,
podemos decirle a SQL que nos dé el product_code.
Aquí es donde la función COALESCE entra en juego.
Digamos que queremos una lista
de todos los productos vendidos.
Queremos usar la columna product_name
para entender qué tipo de producto se vendió.
Escribimos nuestra consulta SQL con
la estructura básica de SQL: Select, From Y Where.
Sabemos que los datos provienen de
la tabla customer_purchase y el conjunto de datos customer_data.
Escribimos "customer_data.customer_purchase" después de FROM.
Después, le decimos a SQL qué datos queremos.
Queremos una lista de nombres de productos,
pero si los nombres no están disponibles,
entonces queremos el código del producto.
Aquí es donde escribimos "COALESCE".
Entonces le decimos a SQL qué columna comprobar primero, el producto,
y qué columna comprobar en segundo lugar
si la primera columna es nula, product_code.
Llamaremos a este nuevo campo product_info.
Por último, no estamos filtrando ningún dato,
de modo que podamos eliminar la cláusula WHERE.
Esto nos da la información del producto de cada compra.
Ahora tenemos una lista de todos los productos que
se vendieron para que la dueña revise.
COALESCE también puede ahorrarte
tiempo cuando estás haciendo cálculos
omitiendo los valores nulos
y manteniendo las matemáticas correctas.
Esas fueron solo algunas de las
funciones avanzadas que puedes usar para limpiar
tus datos y prepararlos para
el siguiente paso en el proceso de análisis.
Descubrirás más a medida que sigas trabajando en SQL.
Pero este es el final de este video y de este módulo.
¡Excelente trabajo! Hemos cubierto mucho terreno.
Aprendiste las diferentes
funciones de limpieza de datos en hojas de cálculo y
SQL y los beneficios de
usar SQL para manejar grandes conjuntos de datos.
También añadimos algunas fórmulas
y funciones a tu caja de herramientas,
y lo que es más importante, tuvimos la oportunidad de experimentar algunas de
las formas en que SQL puede ayudarte a conseguir
datos listos para analizar.
Después de esto, podrás dedicar
algo de tiempo a aprender cómo verificar e informar de
los resultados de la limpieza para que tus datos estén
limpios y los interesados lo sepan.
Pero antes de eso, tienes
otro desafío semanal que abordar. Puedes hacerlo.
Al principio, algunos de estos conceptos pueden parecer difíciles,
pero se convertirán en algo natural
a medida que progreses en tu carrera.
Solo se necesita tiempo y práctica.
Hablando de práctica, no dudes en volver a mirar cualquiera de
estos videos o
incluso probar algunos de estos comandos por tu cuenta.
Buena suerte. Te veré de nuevo cuando estés listo.