2011-08-20 62 views
2

我有一个表student与字段id,名称和标记。 我需要得到第二大分数的学生姓名。从MySQL表获取第二大标记

我想:

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

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

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

我该怎么做?

回答

5
SELECT DISTINCT 
    name, mark 
FROM 
    stud 
WHERE 
    mark = (SELECT MAX(mark) FROM stud WHERE mark < (SELECT MAX(mark) FROM stud)) 
ORDER BY 
    name 
+0

非常感谢..工作 – AGK

+0

@AGK你应该接受如果它的工作的答案。 –

0

这也与上述类似。

SELECT DISTINCT name, mark 
FROM stud WHERE mark = (SELECT mark FROM stud ORDER BY mark DESC LIMIT 1, 1) 
ORDER BY name 
0

我们将通过使用波纹管查询得到螺柱表的第二大标记。

SELECT a.* 
FROM 
    stud as a 
WHERE 
    2= (SELECT COUNT(b.id) FROM stud as B WHERE a.mark <=b.mark)