[QGIS-it-user] dissolve Group by o simile
Aramis
sleeping.aramis a gmail.com
Gio 30 Mar 2017 00:35:10 PDT
Grazie mille, preziosissimi.
Aramis
On 30/03/2017 09:33, G. Allegri wrote:
> 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 <skampus a gmail.com
> <mailto:skampus a 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 <giohappy a gmail.com
> <mailto:giohappy a 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
> <http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html>
>
> Il giorno 30 marzo 2017 08:56, Aramis
> <sleeping.aramis a gmail.com <mailto:sleeping.aramis a 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 a lists.osgeo.org
> <mailto:QGIS-it-user a lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
> <https://lists.osgeo.org/mailman/listinfo/qgis-it-user>
>
>
>
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user a lists.osgeo.org <mailto:QGIS-it-user a lists.osgeo.org>
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
> <https://lists.osgeo.org/mailman/listinfo/qgis-it-user>
>
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20170330/00e527e2/attachment-0001.html>
Maggiori informazioni sulla lista
QGIS-it-user