#1 Wed 18 December 2019 20:12
- Mossy_D
- Participant occasionnel
- Date d'inscription: 1 Oct 2018
- Messages: 15
[QGIS / Spatialite]
Bonjour,
Pas certain d'être sur le bon forum mais je tente ma chance !
Sous QGIS / Spatialite :
Je dispose d'une couche de polygones représentant des zones de diagnostic que nous appellerons "zone_diag".
Cette couche vient se superposer aux polygones du parcellaire cadastral "parcelle".
Après découpage, chaque polygone de "zone_diag" contient plusieurs morceaux de "parcelle".
Mon problème :
Je souhaiterais (via SQL ? PYTHON ?) numéroter pour chaque zone de diagnostic les parcelles de 1 à n (n = maximum de parcelles dans une zone de diagnostic).
Ex :
zone_diag 1 contient parcelle 1, 2, 3...max
zone_diag 2 contient parcelle 1,2,3...max
zone_diag 3 contient parcelle 1,2,3...max
Auriez vous la solution chers confrères ?
Ce genre de ligne SQL pourrait elle être adaptée (là c'est avec des voitures...) ?
Code:
SELECT ROW_NUMBER() OVER(PARTITION BY V_MARQUE ORDER BY V_PRIX) AS POSITION, V_MODELE, V_MARQUE, V_PRIX FROM VOITURE ORDER BY V_PRIX
Dernière modification par Mossy_D (Wed 18 December 2019 20:14)
Hors ligne
#2 Thu 19 December 2019 09:19
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [QGIS / Spatialite]
Je ne suis pas certain que les window functions soit implémentés dans sqlite.
Mais pour faire ce que vous voulez, ce n'est pas nécessaire.
Un group by et une fonction d’agrégat comme group_concat fera l'affaire.
Hors ligne
#3 Thu 19 December 2019 10:10
- Mossy_D
- Participant occasionnel
- Date d'inscription: 1 Oct 2018
- Messages: 15
Re: [QGIS / Spatialite]
Merci,
Pourriez-vous développer un peu plus ou encore mieux, donner la ligne de code s'il vous plait ?
Je suis débutant en SQL et très pressé par le temps. Je n'ai plus trop le temps de chercher !
Hors ligne
#4 Thu 19 December 2019 13:31
Re: [QGIS / Spatialite]
Merci,
Pourriez-vous développer un peu plus ou encore mieux, donner la ligne de code s'il vous plait ?
Je suis débutant en SQL et très pressé par le temps. Je n'ai plus trop le temps de chercher !
Heum, pas sûr qu'avec ce genre d'approche vous ayez beaucoup de succès.
Le support communautaire est gratuit, à titre bénévole, et repose sur la bonne volonté de chacun et l'échange réciproque.
Essayez, et on vous aidera autant que de besoin ici.
Mais si vous n'avez pas le temps, ou pas le souhait de réaliser vous même, il y a des entreprises qui fournissent du support et de l'assistance commerciale.
Bien cordialement,
Régis
Hors ligne
#5 Thu 19 December 2019 16:31
- Mossy_D
- Participant occasionnel
- Date d'inscription: 1 Oct 2018
- Messages: 15
Re: [QGIS / Spatialite]
Mossy_D a écrit:Merci,
Pourriez-vous développer un peu plus ou encore mieux, donner la ligne de code s'il vous plait ?
Je suis débutant en SQL et très pressé par le temps. Je n'ai plus trop le temps de chercher !
Heum, pas sûr qu'avec ce genre d'approche vous ayez beaucoup de succès.
Le support communautaire est gratuit, à titre bénévole, et repose sur la bonne volonté de chacun et l'échange réciproque.
Essayez, et on vous aidera autant que de besoin ici.
Mais si vous n'avez pas le temps, ou pas le souhait de réaliser vous même, il y a des entreprises qui fournissent du support et de l'assistance commerciale.
Bien cordialement,
Régis
Bonjour,
Si je poste sur le forum, c'est que je suis dans l'urgence. Chercher je le fais tout le temps, mais parfois, je ne trouve pas. Je cherche juste à sortir de l'impasse. Mais tant pis, je fais autrement.
Hors ligne
#6 Fri 20 December 2019 16:07
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: [QGIS / Spatialite]
Code:
SELECT marque , group_concat (prix, ", ") FROM voiture GROUP BY marque ;
Hors ligne
#7 Tue 14 January 2020 16:55
- Mossy_D
- Participant occasionnel
- Date d'inscription: 1 Oct 2018
- Messages: 15
Re: [QGIS / Spatialite]
Bonjour,
Merci pour votre participation.
Je reviens vers vous avec une bonne nouvelle puisqu'à nouveau j'ai rencontré ce problème d’auto-incrémentation partitionnée selon un certain critère... et cet fois je l'ai bel et bien résolu. La première solution était en fait la bonne. Toutefois, seule la requête SELECT fonctionne. Ensuite il est possible de générer une couche avec DB MANAGER. Si l'on fait UPDATE, puis SELECT, le code s'exécute mais le résultat est faussé. Là je ne saurais dire pourquoi... les "Windows fonctions" ne sont peut être pas conçues pour fonctionner avec UPDATE..??
Bref, voici le code donnant un résultat satisfaisant :
Code:
SELECT *, ROW_NUMBER () OVER (PARTITION BY parcelle) AS no_bati FROM bati ORDER BY parcelle
Hors ligne
#8 Thu 08 October 2020 16:27
- Mossy_D
- Participant occasionnel
- Date d'inscription: 1 Oct 2018
- Messages: 15
Re: [QGIS / Spatialite]
Bonjour à tous,
Je cherche un moyen de "traduire" le code SQL suivant en Python 3.0 / Arcpy :
Code:
SELECT *, ROW_NUMBER () OVER (PARTITION BY parcelle) AS no_bati FROM bati ORDER BY parcelle
Pour rappel, on cherche à attribuer un numéro séquentiel (no_bati) pour chaque batiment (bati) en les regroupant par parcelle (parcelle).
Par exemple :
On compte 5 bâtiments sur la parcelle ZY 1, donc les bâtiments sont numérotés de 1 à 5 sur la parcelle ZY 1.
On compte 3 bâtiments sur la parcelle ZY 2, donc les bâtiments sont numérotés de 1 à 3 sur la parcelle ZY 2.
Etc...
Il doit y avoir une méthode simple en modifiant un peu la fonction AutoIncrement d'Arcpy, mais je sèche un peu là.
Dernière modification par Mossy_D (Thu 08 October 2020 16:31)
Hors ligne