Oracle Database
Statistiska funktioner
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