Saturday, April 21, 2012

SQL 2005/2008 Median function

This is this simplest SQL 2005/2008 Median function I've come across:



SELECT
(
 (SELECT MAX(MyColumn) FROM
   (SELECT TOP 50 PERCENT MyColumn FROM MyTable ORDER BY MyColumn) AS BottomHalf)
 +
 (SELECT MIN(MyColumn) FROM
   (SELECT TOP 50 PERCENT MyColumn FROM MyTable ORDER BY MyColumn DESC) AS TopHalf)
) / 2 AS Median


Thanks Jeff Atwood!
http://stackoverflow.com/questions/1342898/function-to-calculate-median-in-sql-server

No comments:

Post a Comment