Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.

source: trunk/workshop-foss4g/joins_exercises.rst @ 23

Revision 23, 4.2 KB checked in by djay, 8 years ago (diff)

Traduction de la section 13

Partie 13 : exercice jointures spatial

Voici un petit rappel de certaines de fonctions. Astuce: elles pourraient être utiles pour les exercices !

  • :command:`sum(expression)` agrégation retournant la somme d'un ensemble

    System Message: ERROR/3 (<string>, line 8); backlink

    Unknown interpreted text role "command".

  • :command:`count(expression)` agrégation retournant le nombre d'éléments d'un ensemble

    System Message: ERROR/3 (<string>, line 9); backlink

    Unknown interpreted text role "command".

System Message: WARNING/2 (<string>, line 10)

Block quote ends without a blank line; unexpected unindent.

Souvenez-vous des tables à notre disposition :

  • nyc_census_blocks
    • name, popn_total, boroname, the_geom
  • nyc_streets
    • name, type, the_geom
  • nyc_subway_stations
    • name, routes, the_geom
  • nyc_neighborhoods
    • name, boroname, the_geom

Exercices

  • "Quelle station de métros se situe dans le quartier 'Little Italy' ? Quelle est l'itinéraire de métros à emprunter ?"

    SELECT s.name, s.routes
    FROM nyc_subway_stations AS s
    JOIN nyc_neighborhoods AS n
    ON ST_Contains(n.the_geom, s.the_geom)
    WHERE n.name = 'Little Italy';
    
       name    | routes
    -----------+--------
     Spring St | 6
    
  • "Quels sont les quartiers desservis pas le train numéro 6 ?" (Astuce: la colonnes routes de la table nyc_subway_stations on les valeurs suivante 'B,D,6,V' et 'C,6')

    SELECT DISTINCT n.name, n.boroname
    FROM nyc_subway_stations AS s
    JOIN nyc_neighborhoods AS n
    ON ST_Contains(n.the_geom, s.the_geom)
    WHERE strpos(s.routes,'6') > 0;
    
            name        | boroname
    --------------------+-----------
     Midtown            | Manhattan
     Hunts Point        | The Bronx
     Gramercy           | Manhattan
     Little Italy       | Manhattan
     Financial District | Manhattan
     South Bronx        | The Bronx
     Yorkville          | Manhattan
     Murray Hill        | Manhattan
     Mott Haven         | The Bronx
     Upper East Side    | Manhattan
     Chinatown          | Manhattan
     East Harlem        | Manhattan
     Greenwich Village  | Manhattan
     Parkchester        | The Bronx
     Soundview          | The Bronx
    

    Note

    Nous avons utilisé le mot clef DISTINCT pour supprimer les répétitions dans notre ensemble derésultats où il y avait plus d'une seule station de métros dans le quartier.

  • "AprÚs le 11 septembre, le quartier de 'Battery Park' était interdit d'accÚs pendant plusieurs jours. Combien de personnes ont dût être évacués ?"

    SELECT Sum(popn_total)
    FROM nyc_neighborhoods AS n
    JOIN nyc_census_blocks AS c
    ON ST_Intersects(n.the_geom, c.the_geom)
    WHERE n.name = 'Battery Park';
    
    9928
    
  • "Quelle est la densité de population (personne / km^2) des quartier de 'Upper West Side' et de 'Upper East Side' ?" (Astuce: il y a 1000000 m^2 dans un km^2.)

    SELECT
      n.name,
      Sum(c.popn_total) / (ST_Area(n.the_geom) / 1000000.0) AS popn_per_sqkm
    FROM nyc_census_blocks AS c
    JOIN nyc_neighborhoods AS n
    ON ST_Intersects(c.the_geom, n.the_geom)
    WHERE n.name = 'Upper West Side'
    OR n.name = 'Upper East Side'
    GROUP BY n.name, n.the_geom;
    
          name       |  popn_per_sqkm
    -----------------+------------------
     Upper East Side | 47943.3590089405
     Upper West Side | 39729.5779474286
    
Note: See TracBrowser for help on using the repository browser.