如何统计得分相等的学生,并在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