Oracle Database
Statistische Funktionen
Suche…
Berechnung des Medianwertes einer Menge von Werten
Die MEDIAN-Funktion ist seit Oracle 10g eine einfach zu verwendende Aggregationsfunktion:
SELECT MEDIAN(SAL)
FROM EMP
Es gibt den Median der Werte zurück
Funktioniert auch mit DATETIME
Werten.
Das Ergebnis von MEDIAN wird berechnet, indem zuerst die Zeilen angeordnet werden. Mit N als Anzahl der Zeilen in der Gruppe berechnet Oracle die Zeilennummer (RN) von Interesse mit der Formel RN = (1 + (0.5 * (N-1)). Das Endergebnis der Aggregatfunktion wird mit linear berechnet Interpolation zwischen den Werten der Zeilen bei den Zeilennummern CRN = CEILING (RN) und FRN = FLOOR (RN).
Seit Oracle 9i können Sie PERCENTILE_CONT verwenden , das genauso wie die MEDIAN-Funktion mit einem Percentile-Wert von 0,5 arbeitet
SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL)
FROM EMP
VARIANCE
Die Varianz misst, wie weit eine festgelegte Anzahl vom Mittelwert abweicht. Aus praktischer Sicht ist der Abstand vom Mittelwert (Mitte) quadratisch - je größer die Zahl, desto weiter der Punkt ist.
Das folgende Beispiel würde eine Abweichung der Gehaltswerte zurückgeben
SELECT name, salary, VARIANCE(salary) "Variance"
FROM employees
STDDEV
STDDEV gibt die Musterstandardabweichung von expr zurück, eine Menge von Zahlen. Sie können es sowohl als Aggregat- als auch als Analysefunktion verwenden. Sie unterscheidet sich von STDDEV_SAMP darin, dass STDDEV Null zurückgibt, wenn nur eine Zeile Eingabedaten vorhanden ist, während STDDEV_SAMP Null zurückgibt.
Oracle Database berechnet die Standardabweichung als Quadratwurzel der für die VARIANCE-Aggregatfunktion definierten Varianz.
Diese Funktion verwendet als Argument jeden numerischen Datentyp oder jeden nicht-numerischen Datentyp, der implizit in einen numerischen Datentyp konvertiert werden kann. Die Funktion gibt denselben Datentyp zurück wie der numerische Datentyp des Arguments.
Wenn Sie DISTINCT angeben, können Sie nur die query_partition_clause der analytic_clause angeben. Die order_by_clause und die windowing_clause sind nicht erlaubt.
Das folgende Beispiel gibt die Standardabweichung der Gehälter in der Beispieltabelle hr.employees zurück :
Wo hr ist Schema und Mitarbeiter ist ein Tabellenname.
SELECT STDDEV(salary) "Deviation"
FROM employees;
Deviation
----------
3909.36575
Die Abfrage im folgenden Beispiel gibt die kumulierte Standardabweichung der Gehälter in Abteilung 80 in der Beispieltabelle hr.employees zurück, sortiert nach 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