banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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: 17

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: 993

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

 

Pied de page des forums

Powered by FluxBB