Oracle Database
Funzioni statistiche
Ricerca…
Calcolo della mediana di un insieme di valori
La funzione MEDIAN dal momento che Oracle 10g è una funzione di aggregazione facile da usare:
SELECT MEDIAN(SAL)
FROM EMP
Restituisce la mediana dei valori
Funziona anche con i valori DATETIME
.
Il risultato di MEDIAN viene calcolato prima ordinando le righe. Utilizzando N come numero di righe nel gruppo, Oracle calcola il numero di riga (RN) di interesse con la formula RN = (1 + (0,5 * (N-1)). Il risultato finale della funzione di aggregazione è calcolato da lineare interpolazione tra i valori delle righe ai numeri di riga CRN = CEILING (RN) e FRN = FLOOR (RN).
Dal momento che Oracle 9i è possibile utilizzare PERCENTILE_CONT che funziona come la funzione MEDIAN con valori percentili predefiniti a 0,5
SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL)
FROM EMP
VARIANZA
La varianza misura quanto distano un numero impostato dalla sua media. Dal punto di vista pratico è una distanza quadrata dalla sua media (al centro) - più grande è il numero più lontano è il punto.
L'esempio seguente restituirebbe la varianza dei valori di stipendio
SELECT name, salary, VARIANCE(salary) "Variance"
FROM employees
STDDEV
STDDEV restituisce la deviazione standard campionaria di expr, un insieme di numeri. Puoi usarlo sia come funzione aggregata che analitica. Differisce da STDDEV_SAMP in quanto STDDEV restituisce zero quando ha solo 1 riga di dati di input, mentre STDDEV_SAMP restituisce null.
Oracle Database calcola la deviazione standard come radice quadrata della varianza definita per la funzione di aggregazione VARIANCE.
Questa funzione accetta come argomento qualsiasi tipo di dato numerico o qualsiasi tipo di dati non numerico che può essere convertito implicitamente in un tipo di dati numerico. La funzione restituisce lo stesso tipo di dati del tipo di dati numerici dell'argomento.
Se si specifica DISTINCT, è possibile specificare solo la query_partition_clause di analytic_clause. Order_by_clause e windowing_clause non sono consentiti.
L'esempio seguente restituisce la deviazione standard degli stipendi nella tabella hr.employees di esempio:
Dove hr è Schema e dipendenti è un nome di tabella.
SELECT STDDEV(salary) "Deviation"
FROM employees;
Deviation
----------
3909.36575
La query nel seguente esempio restituisce la deviazione standard cumulativa degli stipendi nel reparto 80 nella tabella di esempio hr.employees, ordinata in hire_date:
SELECT last_name, salary,
STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"
FROM employees
WHERE department_id = 30;
LAST_NAME SALARY StdDev
------------------------- ---------- ----------
Raphaely 11000 0
Khoo 3100 5586.14357
Tobias 2800 4650.0896