<jupyter_start><jupyter_text>Challenge: Países, ciudades y monedas Para el reto de hoy se trabajará con datos de países que contiene información sobre las ciudades más pobladas del mundo, así como datos económicos a nivel de país, datos de población y datos geográficos. 🤓En este ejercicio se deberá de explorar una forma de obtener datos de las tablas de países y economías para examinar la tasa de inflación tanto para 2010 como para 2015. 😉  Preparación de los datosAntes de comenzar, repetiremos un proceso que vimos en la leccion anterior. Sigue estos pasos para crear una nueva base de datos e importar un CSV en una tabla nueva. 1. Conéctate a MySQL Server: abre MySQL Workbench y haz clic en la conexión a tu servidor local. Ingresa tu usuario y contraseña.¿Aún no tienes hecha tu conexión? Averigua cómo hacerla [aquí](https://dev.mysql.com/doc/workbench/en/wb-mysql-connections-new.html) 2. Una vez conectado, acceda al menú de schemas del lado izquierdo:![schema0](https://drive.google.com/uc?export=view&id=1U0f_wShC6QU4c2WDNE7Vt0Hv2cR4xNvY) 3. Una vez en la sección de Schemas, has clic en un espacio en blanco y selecciona 'Create Schema...'![schema11](https://drive.google.com/uc?export=view&id=1FSuEnZ6SVq_jwEomds1xu13uqpdh2esE)4. Del lado derecho verás algo como lo siguiente. Allí, deberás ingresar el nombre **'master'** como el nombre de tu Schema.![schema2](https://drive.google.com/uc?export=view&id=1xIF_pHC-W1miKwNt5ghT0IjKjRjvn9Lo)5. Sigue los pasos de la ventana que aparecerá hasta que veas la siguiente pantalla:![schema31](https://drive.google.com/uc?export=view&id=1cUliC80ZhXONdfyB3hjSNGD9sOMXEJ2P) 6. Verás un nuevo ícono en Schemas con el nombre de tu schema, haz clic derecho sobre él y selecciona "Table Data Import Wizard"![schema32](https://drive.google.com/uc?export=view&id=1WEPKNEM2bLSfJPVJ_46Mwanr3ofwZXAa)7. Ha llegado la hora de descargar los siguientes archivos:*   [cities](https://drive.google.com/file/d/1tSZBx32V6P6qfyGb9DOfmEmSaTtCbMtm/view?usp=sharing)*   [countries](https://drive.google.com/file/d/1Js2H_Djlw8JaVOIp1vcWDigHN6gIPKR4/view?usp=sharing)*   [languages](https://drive.google.com/file/d/19EC_01FqSgVd-8tlScrk96rhf3vjhGnm/view?usp=sharing)*   [economies](https://drive.google.com/file/d/1lwlOI09uD3Citq1_OjsDN7jM8CiJvpKc/view?usp=sharing)*   [population](https://drive.google.com/file/d/1gb9W6cgh69f_wWtlI617ZyANu1SdfJbH/view?usp=sharing)Una vez que lo hayas hecho, haz clic en "Browse" y selecciónalo.![schema4](https://drive.google.com/uc?export=view&id=1LlmG3l_bECO-XdzMZwANyczHiESurdt8)8. En esta pantalla solo haz clic en "Next"![schema5](https://drive.google.com/uc?export=view&id=18Vmm6L-tmvBPtdudw9_FKLt9b2G1Rrec)9. En esta pantalla, verifica que la pequeña muestra de la tabla se muestre correctamente y haz clic en "Next"![schema6](https://drive.google.com/uc?export=view&id=16IJhI72JEPKDpJYtQzG7_qLZuJKVd6zX)10. Finalmente, clic en "Next" a esta pantalla y espera a que se importen los datos. Al terminar haz clic en "Finish".![schema7](https://drive.google.com/uc?export=view&id=1rn_zBpQ5ILq13nCpe189JVvFdKbCnb4o)11. Ahora, en el editor de scripts del lado derecho, escribe:```use master;show tables;```Deberías ver el siguiente resultado:![schema8](https://drive.google.com/uc?export=view&id=1HLvJv6aw8gc3cKZP3xdWDL0u5vBVjVlB)  Ahora sí, hagamos algunos joins sobre esa base de datos 🤠NOTA: En algunos de los siguientes ejercicios te vamos a pedir que utilices alias para columnas con el mismo nombre en diferentes tablas, si no está familiarizado con este tema, te dejamos este [link](https://www.w3schools.com/sql/sql_alias.asp). 1. Utiliza un INNER JOIN para cruzar la tablas `cities` y `countries`.Selecciona el nombre de la ciudad (con alias 'city'), el código de país, el nombre del país (con alias 'country') y la columna city_prop_population (población propia de la ciudad). Finalmente, ordena en orden descendente por la columna que ambas tablas tienen en común.``` Tu código aquí```Resultado esperado:![challenge1](https://drive.google.com/uc?export=view&id=1m3FMG5fF6AJ0-MbUdNCZh84HflOySaWW) **2.** Utiliza un LEFT JOIN para cruzar la tablas `countries` y `languages`.Selecciona el país (con alias 'country'), el nombre local del país (local_name), el nombre del idioma y, finalmente, el porcentaje del idioma hablado en cada país``` Tu código aquí```Resultado esperado:![challenge2](https://drive.google.com/uc?export=view&id=1YOsKCcv8hBNIIgv5UhSzLmUkDR7KLQdt) 3. Utiliza nuevamente un LEFT JOIN (o RIGHT JOIN si quiere alocarte un poco 🤓) para cruzar las tablas `countries` y `economies`.Selecciona el nombre del país, región y GDP per cápita (de `economies`). Finalmente, filtra las filas para obtener solo los resultados del año 2010.``` Tu código aquí```Resultado esperado:![challenge3](https://drive.google.com/uc?export=view&id=17AnwxUyPRWm0vESA57MFKbevZCidUsGa) **4.** Veamos si aprendiste la diferencia entre LEFT JOIN y RIGHT JOIN. Convierte el siguiente ejemplo para utilizar RIGHT JOINs pero obteniendo el mismo resultado.```/*SELECT cities.name AS city, urbanarea_pop, countries.name AS country,       indep_year, languages.name AS language, percentFROM cities  LEFT JOIN countries    ON cities.country_code = countries.code  LEFT JOIN languages    ON countries.code = languages.codeORDER BY city, language;*/ Tu código aquí```Resultado esperado: ![challenge4](https://drive.google.com/uc?export=view&id=1BisqjIQDQK-wzrorsMHIyH4ml1irTDJH) **5.** Has una subconsulta en WHERE donde calcules el promedio de la expectativa de vida en la tabla `populations`, filtrando solo para el año 2015.``` Tu código aquí```Resultado esperado:![challenge5](https://drive.google.com/uc?export=view&id=1nb5lRTxxMT8nZvZJ2rW9d9CUFimz_7gH)<jupyter_code><jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09756944444444444, 'fraction_numerical': 0.030729166666666665, 'mean_word_length': 6.094827586206897, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 22, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '513003', 'license': 'MIT', 'n_tokens_mistral': 2255, 'n_tokens_neox': 2139, 'n_words': 594, 'path': '0. Herramientas para la Ciencia de Datos/7. Subconsultas/Challenge.ipynb', 'repo_name': 'devfmx/master-data-ai', 'size': '5760'}