Skip to content

Commit

Permalink
jointure entre parcelles et communes plutôt que zone_urba
Browse files Browse the repository at this point in the history
  • Loading branch information
nboisteault committed Dec 11, 2023
1 parent 0ce8796 commit 7853b5d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
16 changes: 9 additions & 7 deletions docs/join_data.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,23 @@ Les jointures permettent de récupérer des données en relation les unes par ra

La condition de jointure est faite sur des champs non géométriques. Par exemple une égalité (code, identifiant).

### Exemple 1: zonages et communes
### Exemple 1: parcelles et communes

Récupération des informations de la commune pour chaque zonage
Récupération des informations de la commune pour un ensemble de parcelles

```sql
-- Jointure attributaire: récupération du nom de la commune pour chacun des zonages
SELECT z.*, c.nom
FROM z_formation.zone_urba AS z
JOIN z_formation.commune AS c ON z.insee = c.code_insee
-- Jointure attributaire: récupération du nom de la commune pour un ensemble de parcelles
SELECT c.nom, p.*
FROM z_formation.parcelle as p
JOIN z_formation.commune as c
ON p.commune = c.code_insee
LIMIT 100
-- IMPORTANT: ne pas oublier le ON cad le critère de jointure,
-- sous peine de "produit cartésien" (calcul coûteux de tous les possibles)
;
```

Il est souvent intéressant, pour des données volumineuses, de **créer un index sur le champ de jointure** (par exemple ici sur les champs `insee` et `ccocom`.
Il est souvent intéressant, pour des données volumineuses, de **créer un index sur le champ de jointure** (par exemple ici sur les champs `commune` et `code_insee`.


### Exemple 2: observations et communes
Expand Down
2 changes: 1 addition & 1 deletion docs/save_queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ WITH source AS (
)
-- Sélection des données dans cette table virtuelle "source"
SELECT
-- on crée un code à partir de l'ordre d'arrive.
-- on crée un code à partir de l'ordre d'arrivée.
-- row_number() OVER() permet de récupérer l'identifiant de la ligne dans l'ordre d'arrivée
-- (un_champ)::text permet de convertir un champ ou un calcul en texte
-- lpad permet de compléter le chiffre avec des zéro. 1 devient 01
Expand Down

0 comments on commit 7853b5d

Please sign in to comment.