Funzioni aggregate e pivoting

Le funzioni aggregate e il pivoting possono essere utilizzati per raggruppare e aggregare i dati in una tabella di database.

La funzionalità di base può essere spiegata al meglio con un semplice esempio.

Abbiamo una tabella (non normalizzata per semplicità) che contiene i dipendenti di un'azienda. Ogni dipendente ha un nome, appartiene a un reparto, ha un livello di esperienza e uno stipendio.

Vediamo ora come estrarre alcune informazioni utili da questo set di dati.

Stipendi per dipendente

Questa è la forma più semplice di informazione. Basta visualizzare il nome del dipendente insieme al suo stipendio. Non è necessaria alcuna funzione di aggregazione o pivoting.

Tabella

La tabella è composta da due colonne, una per il nome e una per lo stipendio, entrambe senza funzioni di aggregazione.

Configurazione della colonna Nome

Configurazione della colonna dello stipendio:

Grafico

Configurazione del grafico

Configurazione della colonna del valore dello stipendio

Stipendi riepilogati raggruppati per reparto

Tabella

Configurazione della colonna Reparto:

I dipendenti sono raggruppati per reparto.

Sebbene il gruppo sia presente nell'elenco a discesa della funzione di aggregazione, non si tratta realmente di una funzione di aggregazione. Le funzioni di aggregazione aggregano i valori (somma, conteggio, media, minimo, massimo), mentre il gruppo si limita a raggruppare le righe.

Configurazione della colonna Stipendio:

Poiché abbiamo già raggruppato i dipendenti per reparto, tutte le altre colonne devono utilizzare una funzione di aggregazione. In questo caso vogliamo riepilogare gli stipendi dei dipendenti all'interno di un reparto.

Grafico

Configurazione del grafico

Le righe vengono raggruppate automaticamente in base alla colonna selezionata come etichetta dell'asse X.

Configurazione della colonna del valore dello stipendio

Stipendi medi raggruppati per reparto

Stessa configurazione dell'esempio precedente, tranne per il fatto che la funzione di aggregazione della colonna dello stipendio è impostata su avg invece che su sum.

Tabella

Grafico

Numero di dipendenti raggruppati per reparto

Stessa configurazione dell'esempio precedente, tranne per il fatto che la funzione di aggregazione della colonna dello stipendio è impostata su count invece che su sum.

Tabella

Grafico

Caso speciale (Distinct_count): 

Se il set di dati originale includeva più voci relative alla stessa persona, ciò potrebbe significare che la persona ha ottenuto un aumento.
L'aumento di stipendio è rappresentato come una nuova voce nella tabella (ciò consente di tenere traccia delle vecchie informazioni relative allo stipendio).

Nella schermata sottostante, Hans Muster ha ottenuto un aumento, quindi il suo nuovo stipendio è (100.000,00).

image-20240729-063722.png

Utilizzando le impostazioni precedenti per calcolare il numero di dipendenti raggruppati per reparto, Hans verrebbe conteggiato due volte.
Modificando la funzione di aggregazione da count(salary) a count(name) si otterrebbe comunque lo stesso risultato errato, come mostrato di seguito:

Utilizzo di count(salary)

image-20240729-082621.png

image-20240729-082947.png

Utilizzando count(name)

image-20240729-083033.png

image-20240729-083145.png

La soluzione è rappresentata dalla funzione di aggregazione distinct_count

image-20240729-082405.png

image-20240729-082348.png

Stipendio pivotato per livello, raggruppato per reparto

Negli esempi precedenti avevamo sempre una sola serie di dati (stipendio o numero di dipendenti). Potrebbe anche essere interessante definire la serie di dati in base ai dati disponibili.

In questo esempio vogliamo vedere gli stipendi riassunti raggruppati per reparto. Inoltre, vogliamo visualizzare i dati separati per livello dei dipendenti.

Per ottenere questo risultato, dobbiamo raggruppare i dipendenti per reparto e ruotare la tabella per livello. Il risultato è la seguente tabella:

Reparto

alto

basso

medio

sviluppo

120.000,00

100.000,00

110.000,00

gestione

180.000,00

0

150.000,00

acquisti

0

80.000,00

90.000,00

Il widget della tabella non supporta ancora la funzione pivot.

Questa tabella può essere visualizzata in un grafico come segue:

Configurazione del grafico:

L'elenco dei colori di pivot viene generato automaticamente utilizzando i dati esistenti all'interno della tabella.

Se è impostata una colonna pivot, è possibile aggiungere solo una colonna di valori.

Configurazione della colonna dei valori salariali: