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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow