[Gfoss] ST_Union e PostGIS

Massimiliano Moraca massimilianomoraca a gmail.com
Mer 13 Dic 2017 12:13:37 CET


Buongiorno,
in QGIS con un virtual layer scrivendo questa query:

>
>
>
>
>
>
> *SELECT ST_Union(geom) AS geometry, ogc_fid, cd_diparti, dipartimenFROM
> dipartimentiGROUP BY cd_diparti;*

Ottengo l'effetto dissolve che mi interessa(anche in SpatiaLite.

La stessa query in PostGIS mi genera invece questo errore:

>
>
>
>
>
> *ERROR: ERRORE: la colonna "dipartimenti.ogc_fid" deve comparire nella
> clausola GROUP BY o essere usata in una funzione di aggregazioneLINE 3:
> ogc_fid, ^SQL state: 42803Character: 39*


Se assecondo il messaggio mi chiede successivamente di inserire anche
*dipartimen
*ed il risultato non è il *DISSOLVE *ma la replica di ogni tupla della
tabella selezionata.

Eliminando *ogc_fid *e *dipartimen *e rieseguendo la query in PostGis
ottengo il risultato atteso.

Il tutto confluirà in una *VIEW*. Ho la necessità che nella view siano
presenti anche le due colonne in questione per motivi di etichettatura
*dipartimen
*(ma questo è il male minore visto che potrei risolvere con un *JOIN *in
QGIS sfruttando *cd_diparti*) e *ogc_fid *perchè dovrò poi esportare questo
database in SpatiaLite. SpatiaLite per le view "geometriche" chiede l'id
della tabella associata alla view quanto si va ad usare:

>
>
> * INSERT INTO views_geometry_columns (view_name, view_geometry,
> view_rowid, f_table_name, f_geometry_column, read_only) VALUES ('geometria
> creata', 'geom', 'chiave geometria sorgente', 'geometria sorgente',
> 'geom',1)*


Temo che nell'esportazione la view non venga attivata per questo vorrei che
ci fosse *ogc_fid*.

Forse concettualmente sbaglio qualcosa?

La versione di PgAdmin che uso è la 4, quella di PostgreSQL è la 10 mentre
PostGIS è 2.4. Il file se può servire è scaricabile da questo link:
https://drive.google.com/open?id=14RX4k7oXO6zxrzgjBVuIYKVE6AVCaaxk


Maggiori informazioni sulla lista Gfoss