[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