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