从MySQL表中获得第二大标记

时间:2011-08-20 10:59:35

标签: php mysql

我有一个表student,其中包含字段ID,名称和标记。 我需要得到第二大分数的学生姓名。

我试过了:

SELECT DISTINCT name FROM stud ORDER BY mark DESC LIMIT 2,1

但只返回一个具有第二大标记的学生姓名。

我需要列出所有学生姓名,如果他们中的许多人有第二大的分数。

我该怎么做?

3 个答案:

答案 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)