mysql查询每个班前两名
时间: 2023-07-06 21:16:33 浏览: 213
你可以使用如下的SQL语句来查询每个班前两名的学生:
```
SELECT
class,
name,
score
FROM
(
SELECT
class,
name,
score,
ROW_NUMBER() OVER (PARTITION BY class ORDER BY score DESC) AS rank
FROM
students
) t
WHERE
t.rank <= 2
```
这个SQL语句中,首先使用了一个子查询来给每个学生按照班级和成绩进行排名,然后在外层查询中过滤出了排名前两名的学生。其中,ROW_NUMBER()函数用来给每个学生排名,PARTITION BY子句用来指定按照班级进行分组,ORDER BY子句用来指定按照成绩降序排列。
阅读全文