[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