HIMedian try this..CREATE TABLE [calculate] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [year] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [q8] [float] NOT NULL , [q9] [float] NOT NULL , CONSTRAINT [PK_calculate] PRIMARY KEY CLUSTERED ( [ID] ) ON [PRIMARY] ) ON [PRIMARY]GOINSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('First', 2, 3);INSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('First', 4, 2);INSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('Second', 2, 6);INSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('Third', 1, 4);INSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('Third', 2, 3);INSERT INTO [dbo].[calculate]([year], [q8], [q9])VALUES('Third',9, 1);SELECT AVG([q8]) FROM ( SELECT [q8] FROM ( SELECT TOP 1 [q8] = [q8] * 1.0 FROM ( SELECT TOP 50 PERCENT [q8] FROM [CALCULATE] ORDER BY [q8] ) tab_a ORDER BY 1 DESC ) tab_1 UNION ALL SELECT [q8] FROM ( SELECT TOP 1 [q8] = [q8] * 1.0 FROM ( SELECT TOP 50 PERCENT [q8] FROM [CALCULATE] ORDER BY [q8] DESC ) tab_b ORDER BY 1 ) tab_2 ) median-------------------------R...