我有这种表,找到最大的标记
学生
|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?
在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)