Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione Paolo Cavallini
Il 30/03/2017 09:21, ilgovi ha scritto:
> 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?

puoi creare una vista, oppure caricarlo direttamente da db manager, la
query viene salvata nel progetto

-- 
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
https://www.google.com/trends/explore?date=all=IT=qgis,arcgis
___
QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user


Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione ilgovi
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-requ...@lists.osgeo.org ha scritto:

Invia le richieste di iscrizione alla lista QGIS-it-user all'indirizzo
qgis-it-user@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-requ...@lists.osgeo.org

Puoi contattare la persona che gestisce la lista all'indirizzo
qgis-it-user-ow...@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" <gioha...@gmail.com>
To: Stefano Campus <skam...@gmail.com>
Cc: Aramis <sleeping.ara...@gmail.com>,  Utenti QGIS it
<qgis-it-user@lists.osgeo.org>
Subject: Re: [QGIS-it-user] dissolve Group by o simile
Message-ID:

Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione Aramis

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 > 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 > 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
>
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

Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione G. Allegri
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  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  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  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


Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione Stefano Campus
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  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  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


Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione G. Allegri
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  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


Re: [QGIS-it-user] dissolve Group by o simile

2017-03-30 Per discussione Stefano Campus
plugin group stats

s.

Il giorno 30 marzo 2017 08:56, Aramis  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