Nella query che ho proposto ho usato ST_Union() e poi però sotto parlo di collect(). Come ho aggiunto in coda alla risposta le due funzioni vanno entrambe bene ma fanno cose diverse: st_union fa il dissolve, collect semplicemente raggruppa (multipart).
Giovanni Il giorno 30 marzo 2017 09:26, Stefano Campus <skam...@gmail.com> ha scritto: > ovviamente la risposta di giovanni è ineccepibile, corretta ed elegante; > la soluzione che ho segnalato è proprio da "praticone". > :-) > > s. > > Il giorno 30 marzo 2017 09:22, G. Allegri <gioha...@gmail.com> ha scritto: > >> Buongiorno, >> la funzione Processing ->Strumenti geometria vettore -> Dissolve permette >> di eseguirlo in base ad un campo di raggruppamento. Se vedi, nella finestra >> dello strumento, c'è un "Campo ID univoco". Se deselezioni "Dissolvi tutto" >> (flag) e selezioni il campo di raggruppamento, il dissolve sarà fatto in >> base al valore di quel campo. Tuttavia lo strumento non ti permette di >> ottenere aggregazioni (somme, medie, ecc.) sugli altri campi. >> >> La strada più versatile è sicuramente l'uso di una query SQL. Per poterla >> visualizzare puoi aggiungere un campo geometrico e applicarci una funzione >> di aggregazione: >> >> SELECT >> "COD_ISTAT", >> sum(R03_indicatori_2011_sezioni_P1) AS somma_p1, >> *ST_Union**(geom**) AS geom*, >> FROM "R03_11_WGS84" GROUP BY "COD_ISTAT" >> >> La funzioni collect() crea un multipolygon di tutte le sezioni censuarie >> di ogni gruppo "COD_ISTAT". >> >> A quel punto in fondo alla finestra SQL del DB Manager >> >> 1) clicca su "Carica come nuovo layer" >> 2) Scegli il campo id univoco (es. COD_ISTAT) >> 3) Scegli la colonna geometrica (in questo esempio sarebbe geom per come >> ho definito l'alias del campo (AS geom) >> 4) Clicca su "Carica ora!" >> >> Ti si caricherà un layer (Querylayer) che conterrà le tue geometrie >> aggregate (dalla collect) e, nella tabella attributi, le somme. >> >> Ovviamente potrai aggiungere altri campi (somma di p2, ecc.) e potrai >> anche aggregare per più campi (GROUP BY campo1,campo2,ecc.) >> >> Nella documentazione delle funzioni di Spatialite le funzioni di >> aggregazione sono segnate con la scritta in rosso "aggregate_function" [1]. >> Tra queste c'è anche le "collect()" che, a differenza della st_unioni, >> semplicemente ti crea una multigeometria invece che l'unione, e quindi è >> molto più veloce. >> >> Giovanni >> >> [1] http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html >> >> Il giorno 30 marzo 2017 08:56, Aramis <sleeping.ara...@gmail.com> ha >> scritto: >> >>> Ciao e buon giovedì, forza che la settimana sta finendo. >>> Stavo provando a lavorare con i dati del censimento istat, scarico i >>> file dal sito carico lo shape delle zone censuarie gli faccio un join con >>> la tabella contenente i dati tramite i campi che mi indicano le sezioni. >>> tutto regolare. >>> Vorrei visualizzare i dati raggruppati per comuni, campo cod_istat, ma >>> il dissolve group by in qgis non mi pare sia presente. Trovo che è >>> necessario passare per il DB manager e fare una query sql. Provo la >>> seguente: >>> select COD_ISTAT,sum(R03_indicatori_2011_sezioni_P1)from >>> "R03_11_WGS84"group by COD_ISTAT >>> Per fargli sommare i valori P1 per ogni comune. >>> La query sembra venire ma: >>> 1- come visualizzo i risultati graficamente? >>> 2- dovendo considerare più campi oltre a P1 ho provato a modificare il >>> nome del campo "R03_indicatori_2011_sezioni_P1 in semplicemente P1 e >>> così via per fare delle query un po' più comodamente. Non mi accetta il >>> cambio di nome... possibile perchè essendo il campo risultante da un join >>> fa riferimento a una tabella altra e i nomi devono restare invariati? >>> Alla fine si tratterebbe di un dissolve rispetto a un campo, caoistat, e >>> che sommi gli altri campi, i vari p1 p2 etc >>> Qualcuno sa dirmi come potrei procedere? >>> Grazie >>> Aramis >>> _______________________________________________ >>> QGIS-it-user mailing list >>> QGIS-it-user@lists.osgeo.org >>> https://lists.osgeo.org/mailman/listinfo/qgis-it-user >>> >> >> >> _______________________________________________ >> QGIS-it-user mailing list >> QGIS-it-user@lists.osgeo.org >> https://lists.osgeo.org/mailman/listinfo/qgis-it-user >> >> >
_______________________________________________ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user