Faire des calculs#
Calcul sur des attributs#
Le SQL permet de réaliser des calculs ou des modifications à partir de champs. On peut donc faire des calculs sur des nombres, ou des modifications (remplacement de texte, mise en majuscule, etc.)
Faire un calcul très simple, avec des opérateurs + - /
et *
, ainsi que des parenthèses
1 2 3 4 |
|
Il est aussi possible de faire des calculs à partir d'un ou plusieurs champs.
Nous souhaitons par exemple créer un champ qui contiendra la population des communes. Dans la donnée source, le champ popul
est de type chaîne de caractère, car il contient parfois la valeur 'NC'
lorsque la population n'est pas connue.
Nous ne pouvons pas faire de calculs à partir d'un champ texte. On souhaite donc créer un nouveau champ population pour y stocker les valeurs entières.
1 2 |
|
Modifier le nouveau champ population pour y mettre la valeur entière lorsqu'elle est connue. La modification d'une table se fait avec la requête UPDATE
, en passant les champs à modifier et leur nouvelle valeur via SET
1 2 3 4 5 6 7 |
|
Dans cette requête, le CASE WHEN condition THEN valeur ELSE autre_valeur END
permet de faire un test sur la valeur d'origine, et de proposer une valeur si la condition est remplie ( https://sql.sh/cours/case )
Une fois ce champ population
renseigné correctement, dans un type entier, on peut réaliser un calcul très simple, par exemple doubler la population:
1 2 3 4 5 6 |
|
Il est possible de combiner plusieurs champs pour réaliser un calcul. Nous verrons plus loin comment calculer la densité de population à partir de la population et de la surface des communes.
Calculer des caractéristiques spatiales#
Par exemple la longueur ou la surface
Calculer la longueur d'objets linéaires
1 2 3 4 5 |
|
Calculer la surface de polygones, et utiliser ce résultat dans un calcul. Par exemple ici la densité de population:
1 2 3 4 5 6 7 |
|
Créer des géométries à partir de géométries#
On peut modifier les géométries avec des fonctions spatiales, ce qui revient à effectuer un calcul sur les géométries. Deux exemples classiques : centroides et tampons
Calculer le centroïde de polygones
1 2 3 4 |
|
Le centroïde peut ne pas être à l'intérieur du polygone, par exemple sur la commune de Arnières-sur-Iton. Forcer le centroïde à l'intérieur du polygone. Attention, ce calcul est plus long. Si vous souhaitez mieux comprendre l'algorithme derrière cette fonction
1 2 3 4 5 |
|
Calculer le tampon autour d'objets
1 2 3 4 5 |
|
Continuer vers Filtrer des données: WHERE