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/simple_sql_exercises.rst @ 77

Revision 62, 3.9 KB checked in by thomasg, 13 years ago (diff)

Fin correction typo et orthographe V2 du document

RevLine 
[1]1.. _simple_sql_exercises:
2
[37]3Partie 7 : Exercices simples de SQL
[17]4===================================
[1]5
[62]6En utilisant la table ``nyc_census_blocks``, répondez au questions suivantes (et n'allez pas directement aux réponses ! ).
[1]7
[62]8Vous trouverez ci-dessous des informations utiles pour commencer. Référez-vous à la partie :ref:`A propos des nos données<about_data>` pour la définition de notre table ``nyc_census_blocks``.
[1]9
10.. list-table::
11   :widths: 20 80
12
13   * - **blkid**
[37]14     - Un code à 15 chiffres qui définit de maniÚre unique chaque **bloc** ressencé . Ex: 360050001009000
[1]15   * - **popn_total**
[37]16     - Nombre total de personnes dans un bloc ressensé
[1]17   * - **popn_white**
[17]18     - Nombre de personnes se déclarant "blancs"
[1]19   * - **popn_black**
[17]20     - Nombre de personnes se déclarant "noirs"
[18]21   * - **popn_nativ**
[17]22     - Nombre de personnes se déclarant comme "nés aux états-unis"
[1]23   * - **popn_asian**
[17]24     - Nombre de personne se déclarant comme "asiatiques"
[1]25   * - **popn_other**
[17]26     - Nombre de personne se déclarant d'une autre catégorie
[1]27   * - **hous_total**
[17]28     - Nombre de piÚces appartements
[1]29   * - **hous_own**
[17]30     - Nombre de propriétaires occupant les appartements
[1]31   * - **hous_rent**
[17]32     - Nombre de locations disponibles
[1]33   * - **boroname**
[17]34     - Nom du quartier de New York. Manhattan, The Bronx, Brooklyn, Staten Island, Queens
[1]35   * - **the_geom**
[37]36     - Polygone délimitant le bloc
[1]37
[17]38Ici se trouvent certaines des fonctions d'aggrégation qui vous seront utiles pour répondre aux questions :
[1]39
[62]40 * avg() - la moyenne des valeurs dans un ensemble d'enregistrements
41 * sum() - la somme des valeurs d'un ensemble d'enregistrements
42 * count() - le nombre d'éléments contenus dans un ensemble d'enregistrements.
[1]43
[37]44Maintenant les questions :
[1]45
[17]46 * **"Quelle est la population de la ville de New York ?"**
[62]47
[1]48   .. code-block:: sql
[62]49
[1]50     SELECT Sum(popn_total) AS population
51       FROM nyc_census_blocks;
[62]52
53   ::
54
55     8008278
56
57   .. note::
58
59       Qu'est-ce que ce ``AS`` dans la requête ? vous pouvez donner un nom à une table ou à des colonnes en utilisant un alias. Les alias permettent de rendre les requêtes plus simple à écrire et à lire. Donc au lieu que notre colonne résultat soit nommée ``sum`` nous utilisons le  **AS** pour la renommer en ``population``.
60
[17]61 * **"Quelle est la population du Bronx ?"**
[1]62
63   .. code-block:: sql
[62]64
[1]65     SELECT Sum(popn_total) AS population
66       FROM nyc_census_blocks
67       WHERE boroname = 'The Bronx';
[62]68
69   ::
70
71     1332650
72
73 * **"Quelle est en moyenne le nombre de personnes vivant dans chaque appartement de la ville de New York ?"**
74
[1]75   .. code-block:: sql
76
77     SELECT Sum(popn_total)/Sum(hous_total) AS popn_per_house
78       FROM nyc_census_blocks;
79
[62]80   ::
81
82     2.6503540522400804
83
[17]84 * **"Pour chaque quartier, quel est le pourcentage de population blanche ?"**
[1]85
86   .. code-block:: sql
87
[62]88     SELECT
89         boroname,
[1]90         100 * Sum(popn_white)/Sum(popn_total) AS white_pct
91       FROM nyc_census_blocks
92       GROUP BY boroname;
93
[62]94   ::
95
96        boroname    |      white_pct
[1]97     ---------------+---------------------
98      Brooklyn      | 41.2005552206888663
99      The Bronx     | 29.8655310846808990
100      Manhattan     | 54.3594013771837665
101      Queens        | 44.0806610271290794
102      Staten Island | 77.5968611401579346
[62]103
[17]104Liste des fonctions
105-------------------
[1]106
[62]107`avg(expression) <http://www.postgresql.org/docs/8.2/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: fonction d'aggrégation de PostgreSQL qui renvoie la moyenne d'un ensemble de nombres.
[1]108
[62]109`count(expression) <http://www.postgresql.org/docs/8.2/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: une fonction d'aggrégation de PostgreSQL qui retourne le nombre d'éléments dans un ensemble.
[1]110
[17]111`sum(expression) <http://www.postgresql.org/docs/8.2/static/functions-aggregate.html#FUNCTIONS-AGGREGATE-TABLE>`_: une fonction d'aggrégation de PostgreSQL qui retourne la somme des valeurs numériques d'un ensemble.
[62]112
Note: See TracBrowser for help on using the repository browser.