我有一个表student
,其中包含字段ID,名称和标记。
我需要得到第二大分数的学生姓名。
我试过了:
SELECT DISTINCT name FROM stud ORDER BY mark DESC LIMIT 2,1
但只返回一个具有第二大标记的学生姓名。
我需要列出所有学生姓名,如果他们中的许多人有第二大的分数。
我该怎么做?
答案 0 :(得分:5)
SELECT DISTINCT
name, mark
FROM
stud
WHERE
mark = (SELECT MAX(mark) FROM stud WHERE mark < (SELECT MAX(mark) FROM stud))
ORDER BY
name
答案 1 :(得分:0)
这也与上述类似。
SELECT DISTINCT name, mark
FROM stud WHERE mark = (SELECT mark FROM stud ORDER BY mark DESC LIMIT 1, 1)
ORDER BY name
答案 2 :(得分:0)
我们将使用波纹管查询获得螺柱表的第二大标记。
SELECT a.*
FROM
stud as a
WHERE
2= (SELECT COUNT(b.id) FROM stud as B WHERE a.mark <=b.mark)