#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
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
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