#1 Thu 08 June 2017 12:19
- agone
- Participant occasionnel
- Date d'inscription: 2 Sep 2015
- Messages: 35
QGIS: Sql Insee
Bonjour,
J'essaye d'utiliser les bases de données FD_MOBPRO et FD_MOBSCO directement dans QGIS n'ayant pas Access et LibreOffice ayant du mal à traiter ces fichiers très lourds.
J'utilise donc le gestionnaire de base de donnée et les requêtes SQL
Dans ces .dbf, chaque ligne correspond à un déplacement d'une commune vers une autre commune.
Exemple:
DEPART l ARRIVEE
COM1 l COM1
COM1 l COM1
COM1 l COM2
COM1 l COM2
COM1 l COM2
COM1 l COM2
Je cherche donc à calculer le total de déplacement d'une commune vers une autre commune (nombre de fois où commune de DEPART = COM1 et commune d'ARRIVEE = COM2 etc.)
Et il faut trier ces résultats pour garder seulement les communes de départ du périmètre d'étude puis seulement les communes d'arriver du périmètre d'étude.
Merci pour votre aide
Dernière modification par agone (Thu 08 June 2017 15:42)
Hors ligne
#2 Thu 08 June 2017 12:57
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Sql Insee
Dans l'immédiat, en te référant à la liste des champs dont les tables disposent, tu ferais quelle(s) requête(s) SQL ?
Si pour toi *, faire / rédiger des requêtes complexes est trop difficile, tu peux passer par des tables intermédiaires temporaires.
* moi, je ne suis pas à l'aise avec les requêtes à rallonge, mon esprit préfère décomposer par étape.
Et j'ai d'ailleurs vu ce conseil une fois dans une consigne d'exercice donné par un prof.
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#3 Thu 08 June 2017 13:44
- agone
- Participant occasionnel
- Date d'inscription: 2 Sep 2015
- Messages: 35
Re: QGIS: Sql Insee
Code:
SELECT "FD_MOBPRO_2013"."commune" AS 'DEPART', "FD_MOBPRO_2013"."dclt"AS 'ARRIVEE', FROM "FD_MOBPRO_2013", "Communes_Nimes_Metro" WHERE "FD_MOBPRO_2013"."commune" = "Communes_Nimes_Metro"."code_insee" GROUP BY "FD_MOBPRO_2013"."dclt", "FD_MOBPRO_2013"."commune" ORDER BY "FD_MOBPRO_2013"."dclt"
Mais cela ne me donne rien
J'ai essayé plus simple:
Code:
SELECT "FD_MOBPRO_2013"."commune" AS 'DEPART', "FD_MOBPRO_2013"."dclt"AS 'ARRIVEE', FROM "FD_MOBPRO_2013", "Communes_Nimes_Metro" GROUP BY "FD_MOBPRO_2013"."dclt" , "FD_MOBPRO_2013"."commune" ORDER BY "FD_MOBPRO_2013"."dclt"
Là j'obtiens une première colonne avec les communes de résidence et une seconde avec les communes de travail mais pas le nombre d'occurances ...
Hors ligne
#4 Thu 08 June 2017 15:03
- Pascal Boulerie
- Participant assidu
- Lieu: France
- Date d'inscription: 12 Sep 2005
- Messages: 2947
- Site web
Re: QGIS: Sql Insee
Pour compter un nombre d'occurrences, il faut sans doute une commande count
« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)
Hors ligne
#5 Thu 08 June 2017 15:42
- agone
- Participant occasionnel
- Date d'inscription: 2 Sep 2015
- Messages: 35
Re: QGIS: Sql Insee
J'ai édité le message de départ pour plus de compréhension
Hors ligne
#6 Fri 09 June 2017 11:51
- agone
- Participant occasionnel
- Date d'inscription: 2 Sep 2015
- Messages: 35
Re: QGIS: Sql Insee
? petit up
Hors ligne
#7 Fri 09 June 2017 12:07
- toma82
- Participant occasionnel
- Lieu: Grenoble
- Date d'inscription: 4 Jan 2007
- Messages: 35
Re: QGIS: Sql Insee
Bonjour,
Pas expert en sql et pas certain d'avoir bien compris la demande, mais je ferais une requête dans le genre :
Code:
SELECT a.DEPART, COUNT(*) AS nb FROM FD_MOBPRO a WHERE a.ARRIVEE = 'COM2' GROUP BY a.DEPART;
Hors ligne
#8 Fri 09 June 2017 13:27
Re: QGIS: Sql Insee
Bonjour,
Dans votre 2eme code, comme l'a dit Pascal Boulerie, il manque la fonction count :
Code:
SELECT "FD_MOBPRO_2013"."commune" AS 'DEPART', "FD_MOBPRO_2013"."dclt"AS 'ARRIVEE', count(*) FROM "FD_MOBPRO_2013" GROUP BY "FD_MOBPRO_2013"."dclt" , "FD_MOBPRO_2013"."commune" ORDER BY "FD_MOBPRO_2013"."dclt"
Dernière modification par jmarsac (Fri 09 June 2017 13:29)
Jean-Marie
Azimut
Hors ligne