8. Ejercicios Básicos de SQL¶
Utilizando la tabla nyc_census_blocks
, responde a las siguientes preguntas (¡no mires las respuestas!).
Aquí tiene información útil para empezar. Recuerda la definición de la tabla nyc_census_blocks
de la sección Acerca de nuestros datos.
blkid |
Un código de 15 dígitos que identifica de forma única cada bloque del censo. Ej: 360050001009000 |
popn_total |
Número total de personas en el bloque del censo |
popn_white |
Número de personas que se auto-identifican como «Blanco/a» |
popn_black |
Número de personas que se auto-identifican con «Negro/a» |
popn_nativ |
Número de personas que se auto-identifican como «Nativo/a Americano/a» |
popn_asian |
Número de personas que se auto-identifican como «Asiático/a» |
popn_other |
Número de personas que se auto-identifican como otras categorías |
hous_total |
Número de viviendas en el bloque |
hous_own |
Número de viviendas ocupadas por sus propietarios en el bloque |
hous_rent |
Número de viviendas ocupadas por inquilinos en el bloque |
boroname |
Nombre del distrito de Nueva York, Manhattan, el Bronx, Brooklyn, Staten Island, Queens |
geom |
Límite del bloque |
Además, aquí tienes algunas funciones de agregación SQL comunes que pueden resultarte útiles:
avg() - la media de los valores de un conjunto de registros
sum() - suma de los valores de un conjunto de registros
count() - el número de registros de un conjunto de registros
Ahora las preguntas:
¿Cuántos registros hay en la tabla nyc_streets?
SELECT Count(*) FROM nyc_streets;
19091
¿Cuántas calles de Nueva York empiezan por «B»?
SELECT Count(*) FROM nyc_streets WHERE name LIKE 'B%';
1282
¿Cuál es la población de la ciudad de Nueva York?
SELECT Sum(popn_total) AS population FROM nyc_census_blocks;
8175032
Nota
¿Qué es eso de
AS
? Puedes dar otro nombre a una tabla o columna utilizando un alias. Los alias facilitan la escritura y la lectura de las consultas. Así, en lugar de escribir el nombre de nuestra columna comosuma
, escribiremosAS
, más legiblepoblación
.¿Cuál es la población del Bronx?
SELECT Sum(popn_total) AS population FROM nyc_census_blocks WHERE boroname = 'The Bronx';
1385108
¿Cuántos barrios hay en cada distrito?
SELECT boroname, count(*) FROM nyc_neighborhoods GROUP BY boroname;
boroname | count ---------------+------- Queens | 30 Brooklyn | 23 Staten Island | 24 The Bronx | 24 Manhattan | 28
¿Qué porcentaje de población negra hay en cada distrito?
SELECT boroname, 100.0 * Sum(popn_white)/Sum(popn_total) AS white_pct FROM nyc_census_blocks GROUP BY boroname;
boroname | white_pct ---------------+------------------ Brooklyn | 42.8011737932687 Manhattan | 57.4493039480463 The Bronx | 27.9037446899448 Queens | 39.722077394591 Staten Island | 72.8942034860154
8.1. Lista de funciones¶
avg(expresión): Función de agregación de PostgreSQL que devuelve la media de una columna numérica.
count(expresión): Función de PostgreSQL que devuelve el número de registros en un conjunto de registros.
sum(expresión): Función de PostgreSQL que devuelve la suma de los valores de un conjunto de registros.