我有一个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 ║
╚═══════════════════════╝
答案 0 :(得分:1)
如果您想获得没有任何汇总的学生列表,则需要使用order by
子句。请看下面的例子:
select * from studentsAndMarks order by marks
如果您想获得计数,请使用以下声明:
select count(StudentName),Marks from studentsAndMarks group by Marks
答案 1 :(得分:0)
这只是基本的聚合。使用聚合函数count(),如下所示:
select count(StudentName) as NoOfStudents, marks
from tablename
group by marks
order by marks desc