mysql 查询第二高分数

1,378 阅读1分钟

myslq查询,获取成绩表 Student 中,第二高成绩。

+----+--------+
| Id | Score  |
+----+--------+
| 1  | 90     |
| 2  | 89     |
| 3  | 75     |
+----+--------+

查询应该返回 89

SELECT (
	SELECT DISTINCT Score
	FROM Student 
	ORDER BY Score DESC
	LIMIT 1 OFFSET 1
)AS SecondHightestScore

解析:

  • DISTINCT 作用是 去重
    第一高分数有两个并列90
    例如 分数90、90、89,
    如果没有 DISTINCT 那么查询返回结果是90,
    加上 DISTINCT 那么查询返回结果是 89。

  • ORDER BY Score DESC 降序 ,把分数按高往底排序,90,89,75

  • LIMIT 1 OFFSET 1
    LIMIT 1 只取1条数据, OFFSET 1 跳过1条数据,从第2条数据开始取,(90,89,75)跳过90,取 89