#1 Mon 10 January 2022 18:05
- audreytaviaux
- Participant occasionnel
- Date d'inscription: 12 Jul 2012
- Messages: 30
QGIS/Postgresql: Id unique dans vue avec union
Bonjour,
J'ai réalisé une vue dans postgresql afin de réaliser l'union de deux couches de lignes.
La requête fonctionne, le résultat est visible dans PG (attributs et géométrie) mais pas dans qgis car apparemment il faudrait un ID unique dans le résultat de la vue pour une utilisation dans qgis. J'ai donc ajouté un row_number mais le comptage se fait sur chaque table avant l'union...
Code:
CREATE OR REPLACE VIEW schema.vueglobale SELECT ROW_NUMBER() OVER () AS num, colonnea, colonneb, colonnec, geom AS geom from schema.couchea UNION SELECT ROW_NUMBER() OVER () AS num, colonnea, colonneb, colonnec, geom AS geom from schema.coucheb
Pouvez-vous m'indiquer comment créer un identifiant unique dans le résultat d'une vue qui contient une union ?
Merci !
Dernière modification par audreytaviaux (Wed 12 January 2022 14:13)
Hors ligne
#2 Mon 10 January 2022 18:39
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3928
Re: QGIS/Postgresql: Id unique dans vue avec union
Bonjour,
LE row_num devrait être calculé sur la couche résultant de la fusion. Essayez donc
Code:
SELECT ROW_NUMBER() OVER () AS num, c.colonnea, c.colonneb, c.colonnec, c.geom AS geom from (select colonnea, colonneb, colonnec, geom AS geom from schema.couchea UNION SELECT colonnea, colonneb, colonnec, geom AS geom from schema.coucheb) c
Hors ligne
#3 Tue 11 January 2022 09:25
- audreytaviaux
- Participant occasionnel
- Date d'inscription: 12 Jul 2012
- Messages: 30
Re: QGIS/Postgresql: Id unique dans vue avec union
Merci beaucoup, j'ai pu afficher la vue dans qgis avec ce numéro unique.
Hors ligne
#4 Wed 12 January 2022 14:18
- audreytaviaux
- Participant occasionnel
- Date d'inscription: 12 Jul 2012
- Messages: 30
Re: QGIS/Postgresql: Id unique dans vue avec union
Bonjour, il semble que qgis détecte le champs issu du row_number comme du qlonglong https://georezo.net/forum/attachment.php?item=9400 et non de l'integer. Dans PQadmin je vois que le champs est dans le format biginteger. Est-il possible, dans le vue, de forcer le format du champ issu du row_number en integer?
Dernière modification par audreytaviaux (Wed 12 January 2022 14:19)
Hors ligne
#5 Thu 13 January 2022 09:29
- bbk9
- Participant occasionnel
- Date d'inscription: 7 Jan 2022
- Messages: 24
Re: QGIS/Postgresql: Id unique dans vue avec union
Tu peux essayer de faire ton champ num comme ça :
(ROW_NUMBER() OVER ())::integer AS num
Hors ligne