[QGIS-it-user] QGIS 2.16 funzioni di aggregazione

In QGIS 2.16 sono state introdotte oltre 80 nuove caratteristiche, quella
che mi ha colpito particolarmente è legata alle funzioni di aggregazione;
noto però che alcune volte non funzionano bene, segue esempio:

supponiamo di usare lo shapefile comuni italiani e di etichettare solo i
comuni della provincia di Palermo facendo comparire la percentuale di
superficie comunale rispetto alla provincia, per far ciò basta scrivere:

( $area/sum( $area , "cod_pro" , "cod_pro" =82 ) ) *100

dove 82 è il codice provinciale di Palermo secondo ISTAT, fin qui tutto ok;
la guida suggerisce di scrivere, subito dopo $area: group_by:="cod_pro" cioè

syntax: sum(expression, group_by, filter)

( $area/sum( $area , group_by:="cod_pro" , "cod_pro" =82 ) ) *100

ma questa sintassi non funziona; cioè l'aggiunta di group_by:= non genera
nessun nodo root, analisi fallita!!!!

discutendone con un amico, abbiamo pensato che forse Nyall Dawson ha ideato
il tutto sotto linux, può essere questo?

saluti

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-2-16-funzioni-di-aggregazione-tp5277309.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.

Grazie Totò che mi hai dato occasione di provarne una... (i ofaccio
sempre tutto nel db)

Il 20 luglio 2016 13:28, Totò <pigrecoinfinito@gmail.com> ha scritto:
[...]

syntax: sum(expression, group_by, filter)

e poco più sopra
function sum

"Returns the aggregate summed value from a field or expression."

il secondo è il terzo argomento sono in alternativa a quanto capisco,
o usi group by o usi where, se vuoi etichettare solo Palermo puoi
usare CASE WHEN a monte.

Saluti

Amefad

Amedeo Fadini-2 wrote

il secondo è il terzo argomento sono in alternativa a quanto capisco,
o usi group by o usi where, se vuoi etichettare solo Palermo puoi
usare CASE WHEN a monte.

in effetti anche nell'esempio usa solo group_by:

sum("population",group_by:="state") → summed population value, grouped by
state field

ma faccio notare che questa sintassi funziona:

( $area/sum( $area , "cod_pro" , "cod_pro" =82 ) ) *100

cioè basta toglier il group_by:=

grazie!!!

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-2-16-funzioni-di-aggregazione-tp5277309p5277321.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.

On 7/20/16, Totò <pigrecoinfinito@gmail.com> wrote:

In QGIS 2.16 sono state introdotte oltre 80 nuove caratteristiche, ..
........, per far ciò basta scrivere:

( $area/sum( $area , "cod_pro" , "cod_pro" =82 ) ) *100

..........
ma questa sintassi non funziona; ......
discutendone con un amico, abbiamo pensato che forse Nyall Dawson ha ideato
il tutto sotto linux, può essere questo?

*immagino* che il riferimento sia la sintassi SQL e questa dovrebbe
essere indipendentedalla piattaforma sw :slight_smile:

saluti

ciao,
giuliano

PS: approfitto per dirti che la tua passione e disponibilità sono
apprezzate, anche se magari non sempre sostenute; mi unisco al coro di
chi ti invita a continuare :slight_smile:

Ciao Totò,

sum("population",group_by:="state") → summed population value, grouped by
state field

non ho testato, ma forse c'è un : di troppo? group_by= invece di
group_by:= ?

con l'occhio che hai di sicuro lo avrai già notato, ma tentare non nuove!

p.s. mi unisco anch'io a tutti i commenti positivi degli altri.. i tuoi
continui suggerimenti, video, guide e chi più ne ha più ne metta sono
super utilissimi!

Matteo

ghtmtt wrote

Ciao Totò,

sum("population",group_by:="state") → summed population value, grouped by
state field

non ho testato, ma forse c'è un : di troppo? group_by= invece di
group_by:= ?

con l'occhio che hai di sicuro lo avrai già notato, ma tentare non nuove!

ciao Matteo;
ho provato in mille modi: con i due punti, senza punti, senza trattino basso
ecc...
non funziona!!!

saluti

--
View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-2-16-funzioni-di-aggregazione-tp5277309p5277400.html
Sent from the QGIS Italian User mailing list archive at Nabble.com.