Funzione mediana SQL Server

Funzione mediana SQL Server

La mediana statistica, o breve, si riferisce a un valore che separa una serie di valori a metà. Puoi pensare alla mediana del valore medio all'interno di un insieme di valori ordinati in ordine crescente o discendente.

La mediana in genere indica il valore più grande o più piccolo, a seconda del set di riferimento. Ad esempio, in un set con valori:

100.200.300.400.500.600.700.800.900

Il valore mediano nel set sopra è 500. Quindi, 500 è il quarto valore più grande nel primo set e il quarto più piccolo nel secondo set.

Questo articolo imparerà come calcolare una colonna in SQL Server. Tieni presente che non esiste una funzione specifica per eseguire una mediana statistica in SQL Server.

Le basi

Iniziamo dalle basi e comprendiamo come calcolare la mediana per una serie di valori.

In statistiche, per calcolare la mediana di un set, iniziamo organizzando i valori in un ordine ascendente o discendente. Una volta ordinati logicamente i dati, determiniamo il valore medio.

Se il set contiene un numero dispari di valori, consideriamo il valore medio la mediana del set specifico.

Tuttavia, se il set comprende un numero pari di valori, determiniamo i due valori medi nel set, aggiungiamoli e dividiamo per 2.

Possiamo esprimere la formula per il calcolo della mediana di un determinato set come:

FONTE: Wikipedia.

Calcola la mediana in SQL Server

Impariamo come calcolare la mediana in SQL Server. Iniziamo impostando le informazioni demo come mostrato nelle query seguenti:

Crea database:

Creare mediana del database;

Utilizzare il database

Usare mediana;

Crea una tabella con colonne come mostrato:

Usare mediana;
Crea table Sample_data (
Id int primario Identity Key Identity (1,1) non null,
Product Varchar (50),
Prezzo denaro,
quantità int
);
Inserisci in sample_data (prodotto, prezzo, quantità)
Valori ("sedia regolabile", 380.40, 1),
("Umbrello antivento", 26.77, 3),
("Amazon Echo Dot", 39.99, 5),
('Air Purifier', 99.99, 6),
("4K Security Camera", 109.85, 4),
("Fitness Tracker", 67.49, 10),
("Guanti touch screen", 12.99, 8),
("Apple AirPods Pro", 329.99, 5),
('Sony WH-1000XM4', 320.99, 5),
("MacBook Air", 999.99, 10),
('Dell XPS 13', 1170.00, 6);

Una volta che abbiamo i dati di esempio, possiamo calcolare la mediana dei dati forniti.

Metodo 1 - classifica SQL e CTE

Il primo metodo che possiamo usare per calcolare la mediana dei valori è la funzione di rango e le espressioni della tabella comuni. Questo metodo funziona anche nelle versioni precedenti di SQL Server.

Funziona raggruppando il set in valori più basso del 50 % e il 50 %.

Possiamo usarlo come mostrato nella query di esempio di seguito:

SELEZIONARE
(
(Seleziona max (prezzo) da
(Seleziona il prezzo superiore del 50 percento dall'ordine Sample_Data per prezzo) come BottomHalf)
+
(Seleziona min (prezzo) da
(Seleziona il prezzo superiore del 50 percento dall'ordine Sample_Data di Price Desc) come tophalf)
) / 2 come mediana

Il valore risultante è come:

mediano
---------------------
109.85
(1 riga interessata)

Metodo 2 - percentile_cont

Come accennato, al momento della stesura di questo articolo, non esiste una funzione mediana in SQL Server. Tuttavia, possiamo utilizzare la funzione percentuale_cont per ottenere la stessa funzionalità.

La funzione restituisce il valore classificato a una percentuale specifica per un set di valori definito. Quindi, se impostiamo il valore percentuale su 0.5, la funzione restituirà un valore mediano.

Considera la query di esempio di seguito:

Seleziona prodotto, prezzo, percentile_cont (0.5)
all'interno del gruppo (ordine per prezzo)
Oltre (partizione per prodotto) come mediana
Dall'ordine Sample_Data per Product Desc;

La query restituisce l'output come:

Ulteriori informazioni su percentuale_cont nella documentazione.

Chiusura

Questo articolo discute la mediana statistica e vari modi per calcolare la mediana di una colonna in SQL Server.