Bonjour à tous,

Je rencontre depuis un moment un point bloquant dans la réalisation d'une demande dans mon stage.
Je souhaite ajouter un champ à ma couche SITE.shp (couche de point avec plus de 160000 entités) qui fera la somme de 'X' attributs d'un champ y compris le point sélectionné (nombre de logement total=loc_nb_tot) correspondant aux points se trouvant a 'Y' mètres du point sélectionné mais sur la même couche !

Dans QGIS, il y a une fonction qui s'appelle compter les points dans un polygone. C'est a peu prés ce que j'ai cherché a faire mais a la place du comptage, je veux agréger des attributs.

J'ai importé la couche SITE sous POSTGIS
J'ai fait un tampon de 100m sous qgis puis j'ai importé sous POSTGIS

J'ai testé différentes fonction comme st_intersect,st_within,... mais a chaque fois j'obtiens le même résultat mais qui est faux en majorité !

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT site.*, count(*), sum(site.loc_nb_tot)
FROM site, tampon100
WHERE st_intersects(site.geom,tampon100.geom)
group by site.gid
En faite sur la couche tampon100, il y a beaucoup de tampon qui se croisent a cause de la faible distance des points d'origine de la couche source SITE et j'ai l'impression que ma requête ne tient pas compte de cela. Car sur 2 sites isolés loin de la masse de points il me fait le bon calcul.
Mais lorsque nous sommes dans la masse de points le calcul est faussé.

J'ai remarqué que la couche tampon100 à une géométrie en multipolygon.
Et en sortie de ma requête quand je crée une vue, ma couche site_tampon100 est passé en multipoint.

Je pense que mon erreur viens de la mais je n'arrive pas a la régler.

J'ai trouvé sur des forums la fonction st_dump qui pourrait peut être m'aider mais j'avoue avoir perdu pas mal de temps sur cela et j'ai peur de ne pas pouvoir finir...

Pourriez vous m'aider sur ce sujet ?

Merci d'avance.