First of all, I always get condused what a median is, but I know it is one of these.Second of all it seems like someone whould have a better way to do this, but...Create Table ##tempTodd ( Value INT)INSERT ##tempTodd Values(1)INSERT ##tempTodd Values(1)INSERT ##tempTodd Values(1)INSERT ##tempTodd Values(2)INSERT ##tempTodd Values(3)DECLARE @SQL Varchar(1000), @MiddleRowNbr INT, @MidleDistinctValueRowNbr INTSELECT @MiddleRowNbr = Ceiling(Count(Value)/2.0), @MidleDistinctValueRowNbr = Ceiling(Count(Distinct Value)/2.0)FROM ##tempToddSET @SQL = 'SELECT TOP 1 Value FROM (SELECT TOP ' + LTRIM(@MiddleRowNbr) + 'Value FROM ##tempTodd ORDER BY Value ASC)AS A Order by Value desc'EXEC (@SQL)SET @SQL = 'SELECT TOP 1 Value FROM (SELECT DISTINCT TOP ' + LTRIM(@MidleDistinctValueRowNbr) + 'Value FROM ##tempTodd ORDER BY Value ASC)AS A Order by Value desc'EXEC (@SQL)