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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow