Funzioni aggregate e pivoting

Le funzioni di aggregazione e di pivoting possono essere utilizzate per raggruppare e aggregare i dati in una tabella del database.

La funzionalità di base è spiegata meglio da 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 un salario.

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

Stipendi per dipendente

Questa è la forma più semplice di informazione. Basta visualizzare il nome del dipendente e il 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 funzione di aggregazione.

Configurazione della colonna Nome

Configurazione della colonna stipendio:

Grafico

Configurazione del Grafico

Configurazione della colonna Valore stipendio

Stipendi riassunti raggruppati per reparto

Tabella

Configurazione della colonna Reparto:

I dipendenti sono raggruppati per reparto.

Sebbene il gruppo sia presente nell'elenco a discesa delle funzioni aggregate, non si tratta di una vera e propria funzione aggregata. Le funzioni di aggregazione aggregano i valori (somma, conteggio, media, minimo, massimo), mentre 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 aggregata. In questo caso vogliamo riassumere gli stipendi dei dipendenti all'interno di un reparto.

Grafico

Configurazione del Grafico

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

Configurazione della colonna Valore stipendio

Stipendi medi raggruppati per reparto

Stessa configurazione dell'esempio precedente, ma la funzione aggregata della colonna stipendio è impostata su avg anziché su sum.

Tabella

Grafico

Numero di dipendenti raggruppati per reparto

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

Tabella

Grafico

Caso speciale (Distinct_count):

Se il set di dati originale include più voci della stessa persona, ciò potrebbe significare che la persona ha ricevuto un aumento.
L'aumento di stipendio viene rappresentato come una nuova voce nella tabella (questo aiuta a tenere traccia delle informazioni sul vecchio stipendio).

Nella schermata seguente, 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 contato due volte.
Cambiando la funzione aggregata 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

Utilizzo di count(name)

image-20240729-083033.png

image-20240729-083145.png

La soluzione è rappresentata con la funzione aggregata distinct_count

image-20240729-082405.png

image-20240729-082348.png

Stipendio ruotato per livello, raggruppato per reparto

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

In questo esempio vogliamo visualizzare i salari riassunti raggruppati per reparto. Inoltre, vogliamo visualizzare i dati separati per livello di dipendenti.

Per ottenere questo risultato, è necessario raggruppare i dipendenti per reparto e fare una pivot sulla 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 Tabella non supporta ancora il pivoting.

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

Configurazione del Grafico:

L'elenco dei colori della Tabella Pivot viene generato automaticamente utilizzando i dati esistenti nella tabella.

Se è impostata una colonna pivot, è possibile aggiungere solo una colonna valore.

Configurazione della colonna valore stipendio: