现在我有一张非常简单的数据表,一张学生表student,其中只有id、姓名、年龄和成绩。现在我想找出其中成绩最高的记录。
id | name | age | score |
---|---|---|---|
1 | liu | 30 | 100 |
2 | zhang | 24 | 60 |
3 | guan | 26 | 80 |
所以使用以下语句是正确的吗?
SELECT * FROM student WHERE score = MAX(score);
答案是不对:max()函数不能直接在where子句中使用。需要先使用子查询再进行where筛选。
正确语句:
SELECT * FROM student WHERE score = (SELECT MAX(score) FROM student);
最后查询的结果为: