[QGIS-it-user] dissolve Group by o simile
ilgovi
ilgovi a studioyb.it
Gio 30 Mar 2017 02:21:34 PDT
mi inserisco sperando di usare la lista correttamente...una volta
scritta l'istruzione SQL corretta, salvata come vista (sto usando un
sqlite) e caricata come nuovo layer, come posso fare per rendere il
layer disponibile e "pronto" nel sqlite? cioè che da un progetto nuovo
di QGIS > dbmanager > mio.sqlite> vista la posso caricare con le sue
geometrie?
Il 30/03/2017 09:35, qgis-it-user-request a lists.osgeo.org ha scritto:
> Invia le richieste di iscrizione alla lista QGIS-it-user all'indirizzo
> qgis-it-user a lists.osgeo.org
>
> Per iscriverti o cancellarti attraverso il web, visita
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
> oppure, via email, manda un messaggio con oggetto `help' all'indirizzo
> qgis-it-user-request a lists.osgeo.org
>
> Puoi contattare la persona che gestisce la lista all'indirizzo
> qgis-it-user-owner a lists.osgeo.org
>
> Se rispondi a questo messaggio, per favore edita la linea dell'oggetto
> in modo che sia più utile di un semplice "Re: Contenuti del digest
> della lista QGIS-it-user..."
>
>
> Argomenti del Giorno:
>
> 1. Re: dissolve Group by o simile (G. Allegri)
> 2. Re: dissolve Group by o simile (Aramis)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 30 Mar 2017 09:33:00 +0200
> From: "G. Allegri" <giohappy a gmail.com>
> To: Stefano Campus <skampus a gmail.com>
> Cc: Aramis <sleeping.aramis a gmail.com>, Utenti QGIS it
> <qgis-it-user a lists.osgeo.org>
> Subject: Re: [QGIS-it-user] dissolve Group by o simile
> Message-ID:
> <CAB4g1=w+W7g1iS4fXG-TamS+GBGO1Qp6Tg44tF_pvRpxQi7-Ug a mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> 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> 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> 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.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
>>>> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>>>>
>>>
>>> _______________________________________________
>>> QGIS-it-user mailing list
>>> QGIS-it-user a lists.osgeo.org
>>> 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/57ae6872/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Thu, 30 Mar 2017 09:35:10 +0200
> From: Aramis <sleeping.aramis a gmail.com>
> To: Utenti QGIS it <qgis-it-user a lists.osgeo.org>
> Subject: Re: [QGIS-it-user] dissolve Group by o simile
> Message-ID: <ef380fd0-8e9f-6c12-69f2-ec1a00c16222 a gmail.com>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> 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.html>
>
> ------------------------------
>
> Subject: Chiusura del digest
>
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user a lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>
>
> ------------------------------
>
> Fine di Digest di QGIS-it-user, Volume 17, Numero 21
> ****************************************************
--
Dott. For. Giorgio Govi
3470977917
Maggiori informazioni sulla lista
QGIS-it-user