DECLARE @Step SMALLINT = 10 DECLARE @TestTable TABLE ( TestID INT IDENTITY(1,1) NOT NULL, StudentName VARCHAR(25) NULL, TestScore SMALLINT NULL ) INSERT INTO @TestTable (StudentName, TestScore) Values ('Jack',94), ('Jill',78), ('John',85), ('Matt',80), ('Sam',65), ('Julie',76), ('Jim',55), ('Jean',70), ('Bill',80), ('Sally',97) SELECT * FROM @TestTable ORDER BY TestScore DESC /* SELECT *, CASE WHEN TestScore < 60 THEN 50 ELSE TestScore - (TestScore % @Step) END AS GradeRange FROM @TestTable ORDER BY TestScore DESC SELECT GradeRange, COUNT(*) AS Students, CASE WHEN GradeRange >= 100 THEN 'A+' WHEN GradeRange >= 90 THEN 'A' WHEN GradeRange >= 80 THEN 'B' WHEN GradeRange >= 70 THEN 'C' WHEN GradeRange >= 60 THEN 'D' WHEN GradeRange < 60 THEN 'F' ELSE '' END AS Grade FROM ( SELECT *, CASE WHEN TestScore < 60 THEN 50 ELSE TestScore - (TestScore % @Step) END AS GradeRange FROM @TestTable ) AllTestScores GROUP BY GradeRange ORDER BY GradeRange DESC */