try it
Declare @t Table (Id Int, Ratio DECIMAL(8,2)) Insert Into @t Values(1,0.5),(2,0.55),(3,0.97),(4,0.77),(5,0.97),(6,0.99),(7,1.0),(8,0.15),(9,0.33) DECLARE @MeanSum DECIMAL(8,2) SELECT @MeanSum =SUM(Ratio)/3 FROM @T ;WITH Cte (Id,Ratio,Ids,RatioValues,RatioTotalWeight,Level) AS ( SELECT Id ,Ratio , ',' + CAST(Id AS VARCHAR(MAX)) ,',' + CAST(Ratio AS VARCHAR(MAX)) ,CAST(Ratio AS DECIMAL(8,2)) ,1 FROM @t UNION ALL SELECT p.Id , p.Ratio ,c.Ids + ',' + CAST(p.Id AS VARCHAR(MAX)) ,c.RatioValues + ',' + CAST(p.Ratio AS VARCHAR(MAX)) ,CAST(c.RatioTotalWeight + p.Ratio AS DECIMAL(8,2)) ,c.Level+1 FROM @t AS p JOIN Cte c ON p.Id < c.Id WHERE c.Level < 3 ),CTEOf3Groups AS( SELECT Ids = STUFF(Ids,1,1,'') ,RatioValues ,RatioTotalWeight , FirstChar = SUBSTRING(STUFF(Ids,1,1,''),0,CHARINDEX(',',STUFF(Ids,1,1,''))) ,DENSE_RANK() OVER(ORDER BY ABS(RatioTotalWeight - @MeanSum)) [rank] -- gets the closest distance FROM CTE ),CteGetTheRanks AS( Select *, Rn = Row_Number() Over(Partition By FirstChar Order by FirstChar, [Rank] ) From CTEOf3Groups) ,CteGroups AS( SELECT [GroupId] = Row_Number() Over( Order By (Select 1)), Ids,[Rank] FROM CteGetTheRanks Where [Rank]<=3 AND Rn = 1) SELECT X.[GroupId],X.Id,t.Ratio FROM ( SELECT F1.[GroupId], O.splitdata AS ID FROM ( SELECT *, CAST('<X>'+REPLACE(F.Ids,',','</X><X>')+'</X>' AS XML) AS xmlfilter FROM CteGroups F )F1 CROSS APPLY ( SELECT fdata.D.value('.','varchar(50)') AS splitdata FROM f1.xmlfilter.nodes('X') As fdata(D) ) O )X JOIN @tt ON t.Id = X.ID ORDER BY 1,2 OPTION (MAXRECURSION 0)
Result 
Edited I tried the sampel data you provided (ddl for your reference)
Declare @t Table (Id Int, Ratio DECIMAL(8,2)) Insert Into @t Values (52,0.930000),(53,0.390000),(54,0.800000),(55,0.920000),(56,0.550000), (58,0.810000),(59,0.770000),(60,0.800000),(61,0.590000),(64,0.760000), (65,0.910000),(68,0.690000),(71,0.390000),(73,0.310000),(74,0.760000), (75,0.710000),(82,0.710000),(83,0.950000),(85,0.920000),(88,0.890000), (90,0.700000),(94,0.890000),(96,0.950000),(135,0.760000),(587,0.990000), (588,0.540000),(593,0.430000),(594,0.830000),(596,0.590000),(607,0.970000), (627,0.900000),(651,0.450000),(777,0.800000),(778,0.970000),(781,0.820000), (782,0.730000),(794,0.620000),(796,0.430000),(798,0.790000),(866,0.700000), (903,0.835000),(1015,0.900000),(1016,0.740000),(1185,0.850000),(1278,0.630000), (1356,0.860000),(2199,0.900000),(2204,0.520000),(2205,0.980000),(2206,0.940000), (2208,0.970000),(2212,0.990000),(2215,0.950000),(2216,0.940000),(2217,0.920000), (2223,0.990000),(2261,0.900000),(2262,0.940000),(2263,0.950000),(2268,0.980000), (2271,0.920000),(2281,0.900000),(2294,0.530000),(2297,0.920000),(2298,0.970000), (2299,0.750000),(2300,0.820000),(2303,0.910000),(2305,0.930000),(2309,0.690000), (2310,0.710000),(2316,0.840000),(2556,0.870000),(2806,0.950000),(2842,0.990000), (2844,0.710000),(2977,0.730000),(2985,0.960000),(3008,0.710000),(3042,0.910000), (3061,0.830000),(3243,0.900000),(3346,0.800000),(3371,0.800000),(3497,0.990000), (3838,0.730000),(4000,0.980000),(4001,0.890000),(4002,0.850000),(4003,0.490000), (4004,0.970000),(4009,0.930000),(4032,0.930000),(4095,0.460000),(4428,0.610000), (4438,0.960000),(4439,0.930000),(4445,0.650000),(4446,0.660000),(4447,0.490000), (4455,0.880000),(4457,0.890000),(4460,0.980000),(4469,0.930000),(4473,0.980000), (4474,0.950000),(4475,0.940000),(4481,0.400000),(4489,0.760000),(4490,0.470000)
And the result

The time taken to complete it is 27 seconds. Test from your end (also the result) and let me know.
Edited
75 DDL records
Declare @t Table (Id Int, Ratio DECIMAL(8,4)) Insert Into @t Values (24,0.930000),(25,0.390000),(26,0.800000),(27,0.920000), (28,0.550000),(30,0.810000),(31,0.770000),(32,0.800000), (33,0.590000),(36,0.760000),(37,0.910000),(40,0.690000), (43,0.390000),(45,0.310000),(46,0.760000),(47,0.710000), (54,0.710000),(55,0.950000),(57,0.920000),(60,0.890000), (62,0.700000),(66,0.890000),(68,0.950000),(107,0.760000), (559,0.990000),(560,0.540000),(565,0.430000),(566,0.830000), (568,0.590000),(579,0.970000),(599,0.900000),(623,0.450000), (749,0.800000),(750,0.970000),(753,0.820000),(754,0.730000), (766,0.620000),(768,0.430000),(770,0.790000),(838,0.700000), (875,0.835000),(987,0.900000),(988,0.740000),(1157,0.850000), (1250,0.630000),(1328,0.860000),(2171,0.900000),(2176,0.520000), (2177,0.980000),(2178,0.940000),(2180,0.970000),(2184,0.990000), (2187,0.950000),(2188,0.940000),(2189,0.920000),(2195,0.990000), (2233,0.900000),(2234,0.940000),(2235,0.950000),(2240,0.980000), (2243,0.920000),(2253,0.900000),(2266,0.530000),(2269,0.920000), (2270,0.970000),(2271,0.750000),(2272,0.820000),(2275,0.910000), (2277,0.930000),(2281,0.690000),(2282,0.710000),(2288,0.840000), (2528,0.870000),(2778,0.950000),(2814,0.990000)