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 como suma, escribiremos AS, más legible població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.