Skip to content

Instantly share code, notes, and snippets.

@danielmoralesp
Last active May 20, 2020 20:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielmoralesp/c243df04be1fdb74987e49f15837a63f to your computer and use it in GitHub Desktop.
Save danielmoralesp/c243df04be1fdb74987e49f15837a63f to your computer and use it in GitHub Desktop.
sql project3 - multiple tables

Multiples tablas

Practiquemos lo que aprendimos sobre los JOINS combinando filas de diferentes tablas.

Supongamos que eres un analista de datos una plataforma para compartir viajes en carro (RideSharing). Para un proyecto, y se le dijo que creara tres tablas

Warning: El objetivo de esta primera parte es entender que a veces debemos limpiar, arreglar, modificar, rellenar algunos datos, antes de subirlos a nuestra base de datos. Normalmente, nosotros como data scientists recibimos archivos .db, .sqlite, .csv que podria venir ya listo para trabajar, pero otras veces no contamos con esa suerte :). Por tanto, tenga en cuenta donde van las comas, los punto y comas, los espacios, los nils, etc. Recomendamos usar un editor de texto como Atom o Sublime (y usar los atajos que proveen) para facilitar la tarea de manipulacion de datos. Más adelante veremos otras herramientas, por ahora familiaricemonos con la manipulacion de datos directamente en sql.

  1. trips
id	INTEGER
date	TEXT
pickup	TEXT
dropoff	TEXT
rider_id	INTEGER
car_id	INTEGER
type	TEXT
cost	INTEGER

  1. riders
id	INTEGER
first	TEXT
last	TEXT
username	TEXT
rating	INTEGER
total_trips	INTEGER
referred	INTEGER

  1. cars
id	INTEGER
model	TEXT
OS	TEXT
status	TEXT
trips_completed	INTEGER

Y estos son los datos que debe organizar para crear los registros de las 3 tablas. la persona que le dio los datos no sabe mucho sobre SQL, y simplemente descargo estros datos de un excel, debemos entonces organizarlos para crear los registros correctamente en nuestras tablas

1- trips

1001	2017-12-05	06:45	07:10	102	1	X	28.66
1002	2017-12-05	08:00	08:15	101	3	POOL	9.11
1003	2017-12-05	09:30	09:50	104	4	X	24.98
1004	2017-12-05	13:40	14:05	105	1	X	31.27
1005	2017-12-05	15:15	16:00	103	2	POOL	18.95
1006	2017-12-05	18:20	18:55	101	3	XL	78.52

  1. riders
101	Sonny	Li	@sonnynomnom	4.66	352	
102	Laura	Breiman	@lauracle	4.99	687	101
103	Kassa	Korley	@kassablanca	4.63	42	
104	Yakov	Kagan	@yakovkagan	4.52	1910	103

  1. cars
1	Ada	Ryzac	active	82
2	Ada	Ryzac	active	30
3	Turing XL	Ryzac	active	164
4	Akira	Finux	maintenance	22

Ejercicios

  1. Examine cada tabla seleccionando todas las columnas de cada uno
  2. Pruebe una simple CROSS JOIN entre riders y cars
  3. Supongamos que queremos crear una bitácora de viajes con los viajes y sus usuarios.

Busca las columnas para unir entre los trips y los riders y combina las dos tablas usando un LEFT JOIN. Deja que los trips sean la tabla de la izquierda.

  1. Supongamos que queremos crear un vínculo entre los trips y los cars utilizados durante esos viajes. Busca las columnas a unir y combina la tabla de trips y cars usando un INNER JOIN.

  2. Tenemos nueva datade riders! Hay tres nuevos usuarios este mes.

id	first	last	username	rating	total_trips	referred
105	Zach	Sims	@zsims	4.85	787	
106	Eric	Vaught	@posturelol	4.96	54	101
107	Jilly	Beans	@jillkuzmin	4.7	32	101

Crea la nueva tabla como riders2 y haga un UNION sobre esta nueva tabla.

  1. ¿Cuál es el costo promedio de un viaje?

  2. La empresa está buscando hacer una campaña de correo electrónico para todos los usuarios irregulares.

¡Encuentra a todos los riders que han usado la aplicacion menos de 500 veces!

  1. Calcula el número de cars que están activos.
  2. Es el momento de hacer una llamada de seguridad de los carros que han estado en carretera durante un tiempo.

Escriba una consulta que encuentre los dos carros que tienen los viajes más trips_completed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment