SQLUSA

Microsoft SQL Server 2008 Best Practices

How to calculate median for a data set?

 

Execute the following T-SQL script in Query Editor to demonstrate the calculation of statistical median. For an odd number set, it produces unique value. For even number set, one has to decide.

 

USE AdventureWorks2008;

 

with cteOrderQty

AS

( SELECT DISTINCT OrderQty FROM Sales.SalesOrderDetail)

 

SELECT MedianOrderQty = a.OrderQty

FROM cteOrderQty a

CROSS JOIN cteOrderQty b

GROUP BY a.OrderQty

HAVING

SUM(CASE WHEN b.OrderQty <= a.OrderQty

THEN 1 ELSE 0 END) >=(COUNT(*))/2

AND

SUM(CASE WHEN b.OrderQty >= a.OrderQty

THEN 1 ELSE 0 END)>=(COUNT(*)/2)

 

 

 

 

 

SQLUSA - The Best SQL Server 2008 Training in the World
 
 
SQLUSA.com Home Page