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

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

haubourg
Participant assidu
Lieu: Grenoble
Date d'inscription: 7 Sep 2005
Messages: 257
Site web

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

Hors ligne

 

#5 Thu 19 December 2019 16:31

Mossy_D
Participant occasionnel
Date d'inscription: 1 Oct 2018
Messages: 15

Re: [QGIS / Spatialite]

haubourg a écrit:
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: 1149

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

 

Pied de page des forums

Powered by FluxBB