分享好友 最新动态首页 最新动态分类 切换频道
1112. 每位学生的最高成绩
2024-12-27 01:52

力扣题目跳转(1112. 每位学生的最高成绩 - 力扣(LeetCode

1112. 每位学生的最高成绩

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| student_id    | int     |
| course_id     | int     |
| grade         | int     |
+---------------+---------+
(student_id, course_id) 是该表的主键(具有唯一值的列的组合)。
grade 不会为 NULL。

 题目要求

编写解决方案,找出每位学生获得的最高成绩和它所对应的科目,若科目成绩并列,取  最小的一门。查询结果需按  增序进行排序。

查询结果格式如下所示。

示例 1

输入
Enrollments 表+------------+-------------------+
| student_id | course_id | grade |
+------------+-----------+-------+
| 2          | 2         | 95    |
| 2          | 3         | 95    |
| 1          | 1         | 90    |
| 1          | 2         | 99    |
| 3          | 1         | 80    |
| 3          | 2         | 75    |
| 3          | 3         | 82    |
+------------+-----------+-------+
输出
+------------+-------------------+
| student_id | course_id | grade |
+------------+-----------+-------+
| 1          | 2         | 99    |
| 2          | 2         | 95    |
| 3          | 3         | 82    |
+------------+-----------+-------+

case 1 的建表语句。

Create table If Not Exists Enrollments (student_id int, course_id int, grade int)

Truncate table Enrollments

insert into Enrollments (student_id, course_id, grade) values ('2', '2', '95')

insert into Enrollments (student_id, course_id, grade) values ('2', '3', '95')

insert into Enrollments (student_id, course_id, grade) values ('1', '1', '90')

insert into Enrollments (student_id, course_id, grade) values ('1', '2', '99')

insert into Enrollments (student_id, course_id, grade) values ('3', '1', '80')

insert into Enrollments (student_id, course_id, grade) values ('3', '2', '75')

insert into Enrollments (student_id, course_id, grade) values ('3', '3', '82')

一     我们增加一列作为判断每个人最高分的依据。

select
    *,
     rank() over (partition by student_id order by grade desc,course_id) as rn
from Enrollments;

输出如下

二    很明显 rn = 1的为每个人最高的分数。直接选取即可,记得按照要求进行排序。

with tmp as
(select
    *,
     rank() over (partition by student_id order by grade desc,course_id) as rn
from Enrollments)
select student_id,course_id,grade 
from tmp
where rn = 1
order by student_id;

输出如下

以上就是全部答案,如果对你有帮助请点个赞,谢谢。

来源:力扣(leecode

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

 转载请注明出处:

最新文章
通达信未来函数指标详解:提高选股效率的利器
在股票交易中,的是一种强大的工具,它们能够帮助投资者提高选股效率,成为投资的利器。这些指标基于历史数据和特定的数学模型,通过对股票价格和成交量等指标进行分析,来预测未来股价的走势。通过复杂的计算公式,结合多种技术分析方法,
辽宁优化搭建,企业竞争力提升之道
本文深入解析辽宁优化搭建服务,涵盖从策略制定到技术实施的全方位指导,助力企业打造高效、易用的,提升市场竞争力,实现营销的全面突破。辽宁优化与搭建服务的价值所在挑选辽宁优化与搭建服务时的关键考量在互联网高速发展的今天,企业越
轮回造个伤感的句子说说短句(时间轮回伤感句子简短)
1 . 有时候,我想消失一下,然后看看是否会有人想念我。2 . 你塞满我整个过去,却在我的未来永远地缺席。3 . 胡雁哀鸣夜夜飞,胡儿眼泪双双落。6 . 在接下来的时光里,我愿放慢脚步,用理智的思维,轻盈从容的踏过花开的温暖,在芬芳的世界
银联国际
银联国际是中国银联旗下的全球支付网络服务提供商。作为中国最大的银行卡支付网络,银联国际致力于为全球客户提供安全、便捷的支付解决方案。银联国际通过建立与全球银行、机构和支付网关的合作关系,构建了一个强大的全球化支付网络。这一
微信怎么创建小程序
随着移动互联网的飞速发展,微信小程序已成为许多企业和个人展示服务、推广品牌的重要平台。那么,如何在微信上创建小程序呢?下面,我们将分步骤为大家详细介绍。**一、注册小程序账号**首先,你需要进入微信公众平台官网,点击右上角的“
在 Linux 上搭建 Java Web 项目环境(最简单的进行搭建)
要在 Linux 上安装的程序有 1.JDK (要想运行 java 程序 JDK 是必不可少的) 2.Tomcat (HTTP 服务器,是管理 Web 项目的常用工具) 3. mysql (数据库)        博主使用的 Linux 发行版是 centos ࿰
小红书关键词检测,善于用工具小红书运营推广效果事半功倍
小红书作为一个年轻化、内容多元的生活方式分享平台,越来越多的企业开始重视其内容营销。然而,在数以亿计的笔记中脱颖而出,不仅需要匠心独运的内容创作,更离不开精准的关键词检测与优化。本文七月笙笙July Brand将通过对小红书关键词检
航海王壮志雄心克洛怎么样 航海王壮志雄心克洛详细介绍
在该游戏中,玩家可去解锁许多不同的角色,并且在技能定位以及玩法上也是十分出色,因此吸引了许多的玩家加入其中,本期小编主要是来说说航海王壮志雄心克洛,作为一个热血风格的角色,它的怒气可是能自然增长的,朋友们近期若是对于此很是
微信广告的投放逻辑,看这篇就够了!
数英用户原创文章,转载请遵守底部规范作为移动端的巨大流量入口,如何在既保证用户使用体验的同时也能带来其商业价值,一直都是腾讯,也是“微信之父”张小龙探寻的方向。众所周知,互联网的变现方式除了电商,最为普遍的就是广告流量的变
相关文章
推荐文章
发表评论
0评