如何统计得分相等的学生,并在SQL Server中显示该组的分数

如何统计得分相等的学生,并在SQL Server中显示该组的分数,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个包含学生姓名和分数的Marks表。我想把所有得分相同的学生分组。我还想把他们得到的分数写在下面 示例表是 ╔═════════════════════╗ ║ StudentName Marks ║ ╠═════════════════════╣ ║ A 90 ║ ║ B 70 ║ ║ C 80 ║ ║ D 90 ║ ║ E 70 ║ ║

我有一个包含学生姓名和分数的
Marks
表。我想把所有得分相同的学生分组。我还想把他们得到的分数写在下面

示例表是

╔═════════════════════╗
║ StudentName   Marks ║
╠═════════════════════╣
║ A             90    ║
║ B             70    ║
║ C             80    ║
║ D             90    ║
║ E             70    ║
║ F             90    ║
║ G             80    ║
║ H             60    ║
╚═════════════════════╝
我想要的输出是:

╔═══════════════════════╗
║ NoOfStudents    Marks ║
╠═══════════════════════╣
║ 3               90    ║
║ 2               80    ║
║ 2               70    ║
║ 1               60    ║
╚═══════════════════════╝

如果您想获得一个学生列表,而不进行任何聚合,则需要使用
order by
子句。请看下面的示例:

select * from studentsAndMarks order by marks
如果要获取计数,请使用以下语句:

select count(StudentName),Marks from studentsAndMarks group by Marks 

这只是基本的聚合。使用聚合函数count(),如下所示:

select count(StudentName) as NoOfStudents, marks
from tablename
group by marks
order by marks desc