Vai al contenuto

Gruppo Aggrega

Abstract

Contiene funzioni che aggregano valori nei livelli e campi.


aggregate

Restituisce un valore aggregato calcolato usando elementi da un altro vettore.

Sintassi:

  • aggregate(layer, aggregate,expression[,filter][, concatenator=''][,order_by)

[ ] indica componenti opzionali

Argomenti:

  • layer una stringa, rappresentante o un nome di un layer o un ID di layer
  • aggregate una stringa corrispondente all'aggregato da calcolare. Opzioni valide sono:

    • count
    • count_distinct
    • count_missing
    • minimun or min (>= QGIS 3.36)
    • maximun or max (>= QGIS 3.36)
    • sum
    • mean
    • median
    • stdev
    • stdevsample
    • range
    • minority
    • majority
    • q1: primo quartile
    • q3: terzo quartile
    • iqr: inter quartile range
    • min_length: minima lunghezza stringa
    • max_length: massima lunghezza stringa
    • concatenate: unisce stringhe con un concatenatore
    • collect: crea una geometria multiparte aggregata
  • expression sotto-espressione o nome campo da aggregare

  • filter espressione filtro opzionale per limitare gli elementi usati per calcolare l'aggregato. I campi e la geometria provengono dagli elementi del vettore unito. Si può accedere all'elemento sorgente con la variabile @parent.
  • concatenator stringa opzionale da usare per unire i valori per il raggruppamento 'concatenate'
  • order_by espressione filtro opzionale per ordinare gli elementi usati per calcolare il valore aggregato. I campi e la geometria provengono dagli elementi del vettore unito. Da predefinito, gli elementi verranno restituiti in un ordine non specificato.

Esempi:

aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers") → somma tutti i valori per il campo passengers nel layer rail_stations
aggregate('rail_stations','sum', "passengers"/7) → calcola la media giornaliera di "passengers" dividendo il campo "passengers" per 7 prima di sommare i valori
aggregate(layer:='rail_stations',aggregate:='sum',expression:="passengers",filter:="class">3) → somma tutti i valori per il campo "passengers" soltanto dagli elementi geometrie dove l'attributo "class" è maggiore di 3
aggregate(layer:='rail_stations',aggregate:='concatenate', expression:="name", concatenator:=',') → elenco separato da virgole del campo name per tutti gli elementi nel vettore rail_stations
aggregate(layer:='countries', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry(@parent) ) ) → Il codice Paese di un Paese di intersezione nel vettore 'countries'
aggregate(layer:='stazioni_rotaie',aggregate:='sum',expression:="viaggiatori",filter:=contains( @atlas_geometry, $geometry ) ) → somma tutti i valori del campo viaggiatori in rail_stations all'interno dell'elemento atlante corrente
aggregate(layer:='rail_stations', aggregate:='collect', expression:=centroid($geometry), filter:="region_name" = attribute(@parent,'name') ) → aggrega le geometrie dei centroidi delle stazioni ferroviarie della stessa regione dell'elemento corrente

Osservazioni

i nomi dei layer vanno scritti tra apici semplici ('nome_layer') mentre i nomi dei campi con doppi apici ("nome_campo")

Altri esempi:

Come realizzare una spatial-join con aggregazione usando solo il calcolatore di campi qui


array_agg

Restituisce un array di valori aggregati da un campo o espressione.

Sintassi:

  • array_agg(expression[,group_by][,filter][,order_by])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato
  • order_by espressione opzionale da usare per ordinare gli elementi usati per calcolare il valore aggregato. Da predefinito, gli elementi verranno restituiti in un ordine non specificato.

Esempi:

array_agg( "DEN_PCM" ,group_by:= "COD_REG" ) → lista di valori del "DEN_PCM", ragguppata per il campo "COD_REG"

Nota bene

Per prendere un valore specifico dell'array:

- array_agg("z")[0] → 148,03 è il primo valore dell'array, indice 0;
- array_agg("z")[1] → 164,21 è il secondo valore dell'array, indice 1;
- ecc...

dove "z" è un attributo

Osservazioni:

  • la funzione array_agg permette di trasformare un attributo (colonna di una tabella) in un array!!!
  • la funzione attributes permette di trasformare una feature (riga di una tabella) in una maps e quindi in un array!!!

collect

Restituisce la geometria a parti multiple di geometrie aggregate da una espressione

Sintassi:

  • collect(expression[,group_by][,filter])

Argomenti:

  • expression espressione geometria da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

collect( $geometry ) → geometria a parti multiple delle geometrie aggregate
collect( centroid($geometry), group_by:="region", filter:= "use" = 'civilian' ) → centroidi aggregati degli elementi civili basati sul relativo valore regionale

--

estrae i bounding box, uno per ogni geometria:

estrae il bounding box, dopo aver unito tutte le geometrie:

estrae il perimetro (unico per tutte le geometrie), dopo aver unito tutte le geometrie:

buffer(collect($geometry),0)


concatenate

Restituisce tutte le stringhe aggregate da un campo o un'espressione unite da un separatore.

Sintassi:

  • concatenate(expression[,group_by][,filter][,concatenator][,order_by])

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato
  • concatenator stringa opzionale da usarsi per unire i valori
  • order_by espressione opzionale da usare per ordinare gli elementi usati per calcolare il valore aggregato. Da predefinito, gli elementi verranno restituiti in un ordine non specificato.

[ ] indica componenti opzionali

Esempi:

concatenate("town_name",group_by:="state",concatenator:=',') → lista separata da virgola di town_names, raggruppata per campo state


concatenate_unique

Restituisce tutte le stringhe univoche di un campo o di un'espressione unite da un delimitatore.

Sintassi:

  • concatenate(expression[,group_by][,filter][,concatenator][,order_by])

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato
  • concatenator stringa opzionale da usarsi per unire i valori
  • order_by espressione opzionale da usare per ordinare gli elementi usati per calcolare il valore aggregato. Da predefinito, gli elementi verranno restituiti in un ordine non specificato.

[ ] indica componenti opzionali

Esempi:

concatenate_unique("town_name",group_by:="state",concatenator:=',') → lista separata da virgola di town_names univoci, raggruppata per campo state


count

Restituisce il conteggio degli elementi corrispondenti.

Sintassi:

  • count(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

count("stations",group_by:="state") → conta le stazioni, raggruppate per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. count(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. count(filter:= ,expression:= ,group_by:= )

count_distinct

Restituisce il conteggio dei valori differenti.

Sintassi:

  • count_distinct(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

count_distinct("stations",group_by:="state") → conta i valori differenti delle stazioni, raggruppate per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. count_distinct(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. count_distinct(filter:= ,expression:= ,group_by:= )

--


count_missing

Restituisce il numero di valori nulli (NULL).

Sintassi:

  • count_missing(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

count_missing("stations",group_by:="state") → conta i valori mancanti (NULL) delle stazioni, raggruppati per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. count_missing(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. count_missing(filter:= ,expression:= ,group_by:= )

iqr

Restituisce lo scarto interquartile calcolato da un campo o espressione.

Sintassi:

  • iqr(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

iqr("population",group_by:="state") → scarto interquartile del valore popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. iqr(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. iqr(filter:= ,expression:= ,group_by:= )

majority

Restituisce la maggioranza aggregata di valori (valore più comunemente presente) da un campo o espressione.

Sintassi:

  • majority(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

majority("class",group_by:="state") → valore di classe più comunemente presente, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. majority(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. majority(filter:= ,expression:= ,group_by:= )

max_length

Restituisce la lunghezza massima delle stringhe di un campo o espressione.

Sintassi:

  • max_length(expression[,group_by][,filter])

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

max_length("town_name",group_by:="state") → lunghezza massima di town_name, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. max_length(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. max_length(filter:= ,expression:= ,group_by:= )

maximum

Restituisce il valore massimo aggregato da un campo o espressione.

Sintassi:

  • maximum(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

maximum("population",group_by:="state") → valore massimo di population, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. maximum(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. maximum(filter:= ,expression:= ,group_by:= )

mean

Restituisce il valore medio aggregato da un campo o espressione.

Sintassi:

  • mean(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

mean("population",group_by:="state") → valore medio di population, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. mean(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. mean(filter:= ,expression:= ,group_by:= )

median

Restituisce il valore mediano aggregato da un campo o espressione.

Sintassi:

  • median(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

median("population",group_by:="state") → mediana della popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. median(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. median(filter:= ,expression:= ,group_by:= )

min_length

Restituisce la lunghezza minima delle stringhe di un campo o espressione.

Sintassi:

  • min_length(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

min_length("town_name",group_by:="state") → lunghezza minima di town_name, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. min_length(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. min_length(filter:= ,expression:= ,group_by:= )

minimum

Restituisce il valore minimo aggregato da un campo o espressione.

Sintassi:

  • minimum(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

minimum("population",group_by:="state") → valore minimo di population, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. minimum(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. minimum(filter:= ,expression:= ,group_by:= )

Esempio:

Selezionare le Province con minor area per ogni Regione

$area = minimum(expression:=$area,group_by:="COD_REG")


minority

Restituisce la minoranza aggregata di valori (valore meno comunemente presente) da un campo o espressione.

Sintassi:

  • minority(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

minority("class",group_by:="state") → valore di classe meno presente, ragguppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. minority(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. minority(filter:= ,expression:= ,group_by:= )

q1

Restituisce il primo quartile calcolato da un campo o espressione.

Sintassi:

  • q1(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

q1("population",group_by:="state") → primo quartile del valore popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. q1(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. q1(filter:= ,expression:= ,group_by:= )

q3

Restituisce il terzo quartile calcolato da un campo o espressione.

Sintassi:

  • q3(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

q3("population",group_by:="state") → terzo quartile del valore popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. q3(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. q3(filter:= ,expression:= ,group_by:= )

range

Restituisce l'intervallo aggregato di valori (massimo - minimo) da un campo o espressione.

Sintassi:

  • range(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

range("population",group_by:="state") → intervallo di valori di popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. range(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. range(filter:= ,expression:= ,group_by:= )

relation_aggregate

Restituisce un valore aggregato calcolato usando tutti gli elementi figli corrispondenti da una relazione di layer.

Sintassi:

  • relation_aggregate(relation, aggregate, expression[,concatenator][,order_by])

Argomenti:

  • relation una stringa, rappresentante un ID di relazione
  • aggregate una stringa corrispondente all'aggregato da calcolare. Opzioni valide sono:

    • count
    • count_distinct
    • count_missing
    • minimun or min (>= QGIS 3.36)
    • maximun or max (>= QGIS 3.36)
    • sum
    • mean
    • median
    • stdev
    • stdevsample
    • range
    • minority
    • majority
    • q1: primo quartile
    • q3: terzo quartile
    • iqr: scarto interquartile
    • min_length: minima lunghezza stringa
    • max_length: massima lunghezza stringa
    • concatenate: unisci stringhe con un concatenatore
  • expression sotto espressione o nome campo da aggregare

  • concatenator stringa opzionale da usare per unire i valori per il raggruppamento 'concatenate'
  • order_by espressione filtro opzionale atta ad ordinare gli elementi usati per calcolare il valore aggregato. Campi e geometria provengono dagli elementi del vettore unito. In modo predefinito, gli elementi verranno restituiti senza un ordine specifico.

Esempi:

relation_aggregate(relation:='my_relation',aggregate:='mean',expression:="passengers") → valore medio di tutti gli elementi figli corrispondenti usando la relazione 'my_relation'
relation_aggregate('my_relation','sum', "passengers"/7) → somma del campo passengers diviso per 7 per tutti gli elementi figli corrispondenti usando la relazione 'my_relation' 
relation_aggregate('my_relation','concatenate', "towns", concatenator:=',') → elenco separato da virgole del campo towns per tutte le geometrie figlie corrispondenti che usano la relation 'my_relation'
relation_aggregate('my_relation','array_agg', "id") → array del campo id derivato da tutti gli elementi figlio corrispondenti usando la relazione 'my_relation'

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. relation_aggregate(relation, aggregate, expression[,concatenator][,order_by])
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. relation_aggregate(filter:= ,expression:= ,group_by:= )

--


stdev

Restituisce il valore di deviazione standard aggregato da un campo o espressione.

Sintassi:

  • stdev(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

stdev("population",group_by:="state") → deviazione standard di un valore popolazione, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. stdev(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. stdev(filter:= ,expression:= ,group_by:= )

sum

Restituisce il valore sommato aggregato da un campo o espressione.

Sintassi:

  • sum(expression, group_by, filter)

[ ] indica componenti opzionali

Argomenti:

  • expression sotto espressione o campo da aggregare
  • group_by espressione opzionale da usarsi per raggruppare i calcoli aggregati
  • filter espressione opzionale da usare per filtrare gli elementi usati per calcolare il valore aggregato

Esempi:

sum("population",group_by:="state") → valore somma di population, raggruppato per il campo state

Nota bene:

La sintassi prevede due possibilità:

  1. quella classica, senza l'uso dei paramentri denominati (l'ordine è fondamentale);

    1. stdev(expression, group_by, filter)
  2. con i parametri denominati (l'ordine non è più fondamentale):

    1. stdev(filter:= ,expression:= ,group_by:= )