VI. Sélectionner des données : les requêtes

VI.3 Combiner des requêtes


Comment faire quand on souhaite combiner plusieurs requêtes, par exemple sélectionner les communes traversées par un cours d'eau et ayant une population de + de 10 000 habitants ?

Combiner deux requêtes attributaires

Pour combiner deux requêtes attributaires, nous avons vu dans la partie VI.1.5 qu'il est possible d'utiliser les opérateurs AND et OR.

Il est également possible de faire deux requêtes successives.

Nous allons ici sélectionner les communes du Morbihan de + de 10 000 habitants.

Ouvrez un nouveau projet QGIS, ajoutez-y la couche communes_Bretagne.

icône de sélection attributaireOuvrez la table attributaire de cette couche puis la fenêtre de requête attributaire.

Sélectionnez tout d'abord les communes de + de 10 000 habitants au moyen d'une requête attributaire :

"POPULATION" > 10000

Communes de + de 10 000 habitants sélectionnées

Tapez ensuite la requête suivante, pour sélectionner les communes du Morbihan...

"INSEE_DEP" = '56'

...Mais cette fois-ci, au lieu de cliquer sur « Sélectionner des entités », cliquez sur le petit triangle à droite et sélectionnez dans la liste Filtrer la sélection courante :

liste accessible à partir du bouton sélection

Ainsi, cette deuxième requête s'appliquera uniquement aux communes déjà sélectionnées : les communes du Morbihan seront sélectionnées parmi les communes de + de 10 000 habitants.

Communes de + de 10 000 habitants du département du Morbihan sélectionnées

Utilisez cette fois pour la deuxième requête le bouton Supprimer de la sélection actuelle : les communes du Morbihan seront désélectionnées et il ne restera de sélectionnées que les communes de + de 10 000 des autres départements.

Combiner deux requêtes spatiales

Comment faire maintenant pour combiner deux requêtes spatiales, par exemple pour sélectionner les communes avec éolienne et cours d'eau ?

Attention, le nombre d'entités sélectionnées peut varier légèrement par rapport à ceux indiqués ici si vous chargez des données via des flux WFS et que ces données ont été mises à jour depuis la rédaction de ce tutoriel.

Connectez-vous au flux WFS http://services.sandre.eaufrance.fr/geo/zonage et ajoutez la couche Cours d'eau de plus de 100km - BD Carthage - France entière.

Ajoutez également au projet la couche Eoliennes implantations en Bretagne issue du flux WFS https://geobretagne.fr/geoserver/dreal_b/wfs.

A ce stade, votre projet contient donc ces 3 couches :

projet QGIS avec les 3 couches communes, éoliennes et cours d'eau

Avec l'outil de sélection par localisation, sélectionnez tout d'abord les communes avec éoliennes.

Fenêtre de l'outil de sélection par localisation
communes avec éoliennes sélectionnées

A ce stade, 256 communes sont sélectionnées.

Il ne reste plus ensuite qu'à sélectionner les communes intersectant des cours d'eau à partir de cette sélection :

Fenêtre de l'outil de sélection par localisation
communes avec éoliennes et cours d'eau sélectionnées

Au final, 109 communes contiennent à la fois une éolienne et sont traversées par un cours d'eau de + de 100 km.

Le résultat serait le même en procédant à l'inverse, c'est-à-dire en sélectionnant d'abord les communes traversées par un cours d'eau puis à partir de cette sélection les communes contenant une éolienne.

Combiner requêtes spatiales et attributaires

Le principe est le même que précédemment. Sélectionnons par exemple les communes de + de 10 000 habitants avec éolienne.

Commencez par sélectionner au moyen d'une requête attributaire les communes de + de 10 000 habitants : "POPULATION" > 10000.

37 communes sont sélectionnées.

Ensuite, au moyen d'une requête spatiale, sélectionnez parmi ces communes celles avec une éolienne, avec l'option Sélection au sein de la sélection courante :

outil de sélection

Au final, 2 communes restent sélectionnées : Lamballe-Armor et Pacé.

communes avec éolienne et cours d'eau

Pour connaître le nom des communes sélectionnées, ouvrez la table attributaire de la couche de communes et choisir Ne montrer que les entités sélectionnées dans la liste déroulante en bas à gauche de la table.

Il est aussi possible de procéder à l'inverse : sélectionner d'abord les communes avec éoliennes puis parmi celles-ci celles de + de 10 000 habitants.

Dans le chapitre suivant, nous verrons comment aller encore plus loin en écrivant directement des requêtes en langage SQL !


chapitre précédent chapitre suivant
haut de page