Sök…


Beräkna medianen för en uppsättning värden

MEDIAN-funktionen eftersom Oracle 10g är en lättanvänd aggregeringsfunktion:

SELECT MEDIAN(SAL)
FROM EMP

Det returnerar värdenas median

Fungerar också på DATETIME värden.

Resultatet av MEDIAN beräknas genom att först beställa raderna. Med hjälp av N som antal rader i gruppen, beräknar Oracle radnumret (RN) av intresse med formeln RN = (1 + (0,5 * (N-1)). Det slutliga resultatet av den sammanlagda funktionen beräknas med linjär interpolation mellan värdena från raderna vid radnumren CRN = CEILING (RN) och FRN = FLOOR (RN).

Sedan Oracle 9i kan du använda PERCENTILE_CONT som fungerar på samma sätt som MEDIAN-funktion med standardvärden som standard till 0,5

SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL) 
FROM EMP

VARIATION

Varians mäter hur långt ett fastställt nummer sprids från sitt medelvärde. Från praktiskt perspektiv är det kvadratiska avståndet från dess medelvärde (centrum) - ju större antalet desto längre punkten är.

Följande exempel skulle returnera variansen av lönevärden

SELECT name, salary, VARIANCE(salary) "Variance"
FROM employees 

stdDev

STDDEV returnerar provstandardavvikelsen för expr, en uppsättning siffror. Du kan använda den som både en aggregerad och analytisk funktion. Det skiljer sig från STDDEV_SAMP genom att STDDEV returnerar noll när den bara har en rad inmatningsdata, medan STDDEV_SAMP returnerar noll.

Oracle Database beräknar standardavvikelsen som kvadratroten av den varians som definierats för VARIANCE-aggregeringsfunktionen.

Denna funktion tar som argument alla numeriska datatyper eller alla icke-numeriska datatyper som implicit kan konverteras till en numerisk datatyp. Funktionen returnerar samma datatyp som den numeriska datatypen för argumentet.

Om du anger DISTINCT kan du bara ange frågan_partition_clause för analytic_clause. Order_by_clause och windowsing_clause är inte tillåtna.

Följande exempel returnerar standardavvikelsen för lönen i tabellen ur.medarbetare :

Där hr är schema och anställda är ett tabellnamn.

SELECT STDDEV(salary) "Deviation"
FROM employees;

Deviation
----------
3909.36575

Frågan i följande exempel returnerar den kumulativa standardavvikelsen för lönen i avdelning 80 i provtabellen hr.emplo ansatte, beställd av 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow