阿里云数据库SQL挑战赛赛题一:找出各项考试中的佼佼者

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 阿里云开发者社区及数据库团队联合举办「阿里云数据库SQL挑战赛」,来自阿里云数据库团队的技术专家为各位开发者准备了三道由浅入深的赛题,快来试试你有多会写 SQL 吧。此外,我们还为开发者提供了 3 个月免费的 RDS MySQL Serverless 资源,参赛的同时还能体验云上开发的便利性。

赛题一:找出各项考试中的佼佼者

活动参与地址:https://developer.aliyun.com/mission/activity/sql

数据集下载地址:https://aliyun-marketing.oss-cn-shanghai.aliyuncs.com/doc/market/91qCf0kf49TBKw4pja6YsumoBu67kP2R.zip


表: Student

Column Name

Type

id

int

name

varchar

Id是该表的主键列。

该表的每一行都表示学生的ID和姓名。

 

表: Test

Column Name

Type

id

int

name

varchar

Id是该表的主键列。

该表的每一行表示考试ID和考试名。

表: TestAttempt

Column Name

Type

id

int

studentId 

int

testId 

int

score 

int


Id是该表的主键列。

studentId和testId分别是Student表和Test表中id的外键。

该表的每一行表示一次考试记录,并包含了学生和考试的id。

一个学生可以参加任意考试,不限次数。

 

现在我们关注的是每门考试有哪些顶尖的学生。一门考试的 顶尖学生 是指一个学生的分数在参加该考试的 不同 学生中 得分排名前三 。

编写一个SQL查询,找出每个考试中 得分最高的的考生 。

若同一个考生有多条考试记录,则取最高分。

如果存在并列,将并列的考生都列举出来,直到列举的考生达到或超过三人。

以 每门考试考试分数从高到低的顺序 返回结果表。

示例 :

输入:

Student 表:

id

name

1

Joe

2

Henry

3

Sam

4

Max

5

Janet

6

Randy

7

Will


Test  表:

id

name

1

GRE

2

TOEFL


TestAttempt 表:

id

studentId

testId

score

1

1

1

330

2

3

1

319

3

5

2

108

4

5

2

112

5

1

2

98

6

7

1

300

7

6

2

100

8

4

1

300


输出:

Test

Student

Score

GRE

Joe

330

GRE

Sam

319

GRE

Max

300

GRE

Will

300

TOEFL

Henry

112

TOEFL

Randy

100

TOEFL

Joe

98


解释:GRE考试,Joe和Sam的最好成绩分别排在前二,Max和Will并列第三。TOEFL中,Henry考取了112,108两个高分,但是只取最高的112分。Randy和Joe分别排在第二和第三。

相关文章
|
2月前
|
关系型数据库 分布式数据库 数据库
成都晨云信息技术完成阿里云PolarDB数据库产品生态集成认证
近日,成都晨云信息技术有限责任公司(以下简称晨云信息)与阿里云PolarDB PostgreSQL版数据库产品展开产品集成认证。测试结果表明,晨云信息旗下晨云-站群管理系统(V1.0)与阿里云以下产品:开源云原生数据库PolarDB PostgreSQL版(V11),完全满足产品兼容认证要求,兼容性良好,系统运行稳定。
|
2月前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
19天前
|
关系型数据库 Apache 流计算
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
本文介绍了如何将数据从 OceanBase 迁移到阿里云数据库 SelectDB 内核版 Apache Doris。提供 3 种数据同步方法 1. 使用 DataX,下载 DataX 并编写配置文件,通过 OceanBaseReader 和 DorisWriter 进行数据迁移。 2. 利用 Apache Doris 的 Catalog功 能,将 OceanBase 表映射到 Doris 并插入数据。 3. 通过Flink CDC,设置 OceanBase 环境,配置 Flink 连接器,实现实时数据同步。
手把手教你实现 OceanBase 数据到阿里云数据库 SelectDB 内核版 Apache Doris 的便捷迁移|实用指南
|
2月前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
51 7
|
2月前
|
SQL 关系型数据库 MySQL
阿里云MySQL数据库价格、购买、创建账号密码和连接数据库教程
阿里云数据库使用指南:购买MySQL、SQL Server等RDS实例,选择配置和地区,完成支付。创建数据库和账号,设置权限。通过DMS登录数据库,使用账号密码访问。同地域VPC内的ECS需将IP加入白名单以实现内网连接。参考链接提供详细步骤。
383 3
|
2天前
|
Cloud Native 关系型数据库 分布式数据库
数据库性能诊断工具DBdoctor通过阿里云PolarDB产品生态集成认证
DBdoctor(V3.1.0)成功通过阿里云PolarDB分布式版(V2.3)集成认证,展现优秀兼容性和稳定性。此工具是聚好看科技的内核级数据库性能诊断产品,运用eBPF技术诊断SQL执行,提供智能巡检、根因分析和优化建议。最新版V3.1.1增加了对PolarDB-X和OceanBase的支持,以及基于cost的索引诊断功能。PolarDB-X是阿里巴巴的高性能云原生分布式数据库,兼容MySQL生态。用户可通过提供的下载地址、在线试用链接和部署指南体验DBdoctor。
|
6天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
12天前
|
存储 SQL Apache
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
阿里云数据库内核 Apache Doris 基于 Workload Group 的负载隔离能力解读
|
12天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之阿里云MaxCompute对SQL语句的长度的长度限制是多少
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
13天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
985 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决