Median berechnen

By Frank Kalis

Posted on Jul 13, 2004 von in SQL Server

Es gibt anscheinend unterschiedliche Meinungen über die Berechnung des Median. Zum einen gibt es den 'financial' Median, der das arithmetische Mittel der beiden mittleren Werte ist, zum anderen den 'statistischen' Median, der der niedrigere (bzw. bei Gleichheit der Werte) der erste der Werte ist. In Büchern über T-SQL findet man die komplexesten Statements zur Berechnung des Median, dabei ist dieser sehr einfach mit Hilfe von TOP n PERCENT zu berechnen. Hier ist ein Beispiel zur Berechnung des 'financial' Medians:

IF OBJECT_ID('median') IS NOT NULL
DROP TABLE median
GO
CREATE TABLE median(
col1 INT
)
GO
INSERT INTO median (col1) VALUES (1)
INSERT INTO median (col1) VALUES (2)
INSERT INTO median (col1) VALUES (3)
INSERT INTO median (col1) VALUES (3)
INSERT INTO median (col1) VALUES (4)
INSERT INTO median (col1) VALUES (7)
INSERT INTO median (col1) VALUES (8)
INSERT INTO median (col1) VALUES (9)

SELECT
((SELECT
MIN(Col1)
FROM
(SELECT TOP 50 PERCENT
Col1
FROM
Median
ORDER BY
Col1
DESC) a) +
(SELECT
MAX(Col1)
FROM
(SELECT TOP 50 PERCENT
Col1
FROM
Median
ORDER BY
Col1) a))/2. AS Median

Median
------------------
3.500000

(1 row(s) affected)

Und hier eines zur Berechnung des 'statistischen' Medians:

SELECT 
MAX(Col1) AS Median
FROM
(SELECT TOP 50 PERCENT
Col1
FROM
Median
ORDER BY
Col1) a

Median
-----------
3

(1 row(s) affected)

Beide Varianten funktionieren sowohl für eine gerade als auch ungerade Anzahl von Beoachtungen.

Danke an Jonathan van Houtte.

Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: ,

Noch kein Feedback


Formular wird geladen...