在SQL Server中查找最大值数据

3
我有这样的表格,并且要找出最高分。
学生。
|id | name  | mark |
|1  | john  | 56   |
|2  | sara  | 81   |
|3  | mattew| 65   |

应该是这样的。
|id | name  | mark |
|2  | sara  | 81   |

但是我得到了这种输出
|id | name  | mark |
|1  | john  | 81   |

我用SQL写了这个。
SELECT id,name,MAX(mark)
FROM student;
WHERE name IN
(SELECT name
FROM student);

如何修正这个SQL语句?
2个回答

3

在SQL Server中,您可以使用

SELECT TOP 1 WITH TIES *
FROM student
WHERE mark IS NOT NULL
ORDER BY mark DESC

虽然你也可以使用逻辑等价的标准SQL

SELECT *
FROM   student
WHERE  mark = (SELECT MAX(mark)
               FROM   student) 

0
您可以使用这个简单的查询来获得相同的结果:
  SELECT TOP 1 WITH TIES ID,NAME,mark 
    FROM STUDENT
    ORDER BY MARK DESC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接