Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Printemps des cartes 2024

#1 Mon 20 August 2012 20:50

Meley
Participant occasionnel
Date d'inscription: 28 Mar 2011
Messages: 15

Fusion de ligne via un GROUP BY

Bonjour,

J'ai un problème similaire. Ma couche possède :
    - un numéro de parcelle
    - un nom de propriétaire
    - un titre de propriété

J'ai importé ma couche dans Postgres/PostGIS et je me retrouve donc avec une table ayant les champ suivants :
    - gid
    - numéro de parcelle
    - nom de propriétaire
    - titre de propriété
    - the_geom

Sauf que lorsque j'essaie de supprimer les doublons grâce à la requête

CREATE TABLE nouvelle_table AS SELECT * FROM maTable GROUP BY num_parcelle

On me renvoie l'erreur qu'il faut que tous les champs soient présent dans la clause group by. Sauf que lorsque je le fais, les doublons ne sont pas supprimer ...
Comment puis-je faire svp ??

Merci de votre aide

Hors ligne

 

#2 Mon 20 August 2012 21:14

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Fusion de ligne via un GROUP BY

Bonsoir,

Code:

CREATE TABLE nouvelle_table AS SELECT num_parcelle, max(nom_proprio), max(titre_proprio), st_Union(the_geom) FROM maTable GROUP BY num_parcelle

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 20 August 2012 21:40

Meley
Participant occasionnel
Date d'inscription: 28 Mar 2011
Messages: 15

Re: Fusion de ligne via un GROUP BY

Bonsoir et merci pour la réponse rapide.

Par contre, la requête ne fonctionne pas... Cela me renvoie l'erreur que st_Union n'est pas une fonction existante ...
Ou en tout cas qu'elle ne fonctionne pas sur un champ de type geometry.

Dernière modification par Meley (Mon 20 August 2012 21:41)

Hors ligne

 

#4 Tue 21 August 2012 10:36

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Fusion de ligne via un GROUP BY

Bonjour,

Bizarre comme message d'erreur car st_union est une fonction pour les géométries : conf http://www.postgis.org/docs/ST_Union.html

Bref, l'idée est d'utiliser des fonctions d'aggrégation pour dire à postgresql comment aggréger/fusionner les champs des différents lignes à fusionner via la clause GROUP BY.

Y.
PS : je déplace les messages sur le forum geoBD dans un nouveau sujet, plus à sa place.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB