#1 Mon 24 April 2023 10:26
- Gaelle2107
- Participant occasionnel
- Date d'inscription: 28 Mar 2023
- Messages: 19
QGIS: Besoin d aide pour travailler sur une BDD
Bonjour,
Voici mon besoin: je dois faire une carte de flux, mais avant cela, je dois travailler sur ma BDD.
Ma BDD (fichier csv) comporte une colonne identifiant (identifiant unique), une colonne "Départ" (qui correspond au code Insee de résidence de l'identifiant), une colonne "Arrivée" (qui correspond au code Insee du lieu de consultation de l'identifiant) et une colonne "flux" (qui pour le moment vaut 1 pour chaque ligne).
Pour faire ma carte de flux, je dois avoie la valeur du "flux" pour chaque couple "code insee de résidence-code insee du lieu de consultation).
Je pourrais bien faire un tableau croisé dynamique sur Excel, mais ce n'est pas l'idéal car j'ai 7614 lignes dans ma BDD et j'ai besoin de garder cette disposition sur mon csv pour faire ma carte de flux.
Quelle est la méthode pour réaliser ces regroupements sur Qgis ? Fait-il passer par une requête SQL ?
Merci par avance
Hors ligne
#2 Mon 24 April 2023 16:47
- triird
- Participant occasionnel
- Date d'inscription: 13 Jan 2022
- Messages: 18
Re: QGIS: Besoin d aide pour travailler sur une BDD
Bonjour,
Si j'ai bien compris tu veux concaténer les valeurs "Départ" et "Arrivée" dans une colonne "flux" ?!
Pour ça dans Qgis ouvre la calculatrice de champs de Qgis cliques sur "Mise à jour d'un champ existant" choisi le champs "flux" dans la liste déroulante
Puis tape dans l'endroit expression : "Départ" || '-' || "Arrivée"
Théo
Hors ligne
#3 Mon 24 April 2023 17:52
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: Besoin d aide pour travailler sur une BDD
Bonsoir Gaelle,
Fait-il passer par une requête SQL ?
C'est ce que j'aurais fait moi.
Voici une requête qui créé une couche de trajets, avec en attributs le nombre de flux entre chaque commune :
Code:
SELECT com_depart.NOM || ' > ' || com_arrivee.NOM as nom_trajet, sum(flux.flux), makeline(centroid(com_depart.geometry),centroid(com_arrivee.geometry)) as geometry FROM flux JOIN commune com_depart ON flux.depart = com_depart.INSEE_COM JOIN commune com_arrivee ON flux.arrivee = com_arrivee.INSEE_COM GROUP BY trajet, com_depart.geometry, com_arrivee.geometry
Elle fait la jointure entre une table "flux" et une couche "commune", et trace les trajets entre le centroïde de chaque commune de départ et d'arrivée.
Testé fonctionnel avec des "couches virtuelles" depuis le gestionnaire de bases de données de QGis.
A vous d'adapter à vos champs / contexte.
A+
Dernière modification par Sylvain M. (Mon 24 April 2023 17:57)
Sylvain M.
Hors ligne
#4 Tue 25 April 2023 21:12
- Gaelle2107
- Participant occasionnel
- Date d'inscription: 28 Mar 2023
- Messages: 19
Re: QGIS: Besoin d aide pour travailler sur une BDD
Merci pour vos retours,
Avant de lire vos réponses, j'ai fait une requête sql plus simple , étant novice ...
SELECT Départ, Arrivée, count(*) AS "flux"
FROM Table_flux
GROUP BY Départ, Arrivée
Ca semble fonctionner, maintenant, je rame avec mes oursins ...
Hors ligne