在单个查询中显示标记和最大标记

时间:2015-05-11 13:28:19

标签: mysql sql

例如我有一张桌子

Student | Marks 
A       | 50
B       | 60
C       | 70
D       | 80

我想要的是

Student | Marks | MaxMarks
A       | 50    | 80
B       | 60    | 80
C       | 70    | 80
D       | 80    | 80

我不想使用子查询/嵌套查询..

1 个答案:

答案 0 :(得分:3)

您可以在不使用子查询的情况下以最疯狂的方式执行此操作:

select t.student, t.marks, max(t2.marks) as maxmarks
from table t cross join
     table t2
group by t.student, t.marks;

这是一种更明智的方法:

select t.student, t.marks, t2.maxmarks
from table t cross join
     (select max(t2.marks) as maxmarks from table t2) t2;