使用Oracle写sql,获取各科成绩最高人的信息
时间: 2024-01-13 08:02:58 浏览: 122
Oracle SQLServer行列转换
可以使用以下SQL语句来获取各科成绩最高人的信息:
```
SELECT subject, name, score
FROM (
SELECT subject, name, score,
ROW_NUMBER() OVER (PARTITION BY subject ORDER BY score DESC) AS rn
FROM scores
) t
WHERE t.rn = 1;
```
其中,`scores` 表示学生成绩表,包含字段 `subject`(科目)、`name`(姓名)和 `score`(成绩)。`ROW_NUMBER()` 函数用来给每个科目的成绩按照降序排列,并分配一个序号 `rn`。最后,查询 `rn` 为 1 的记录,即为每个科目成绩最高的人的信息。
阅读全文