阿里云 瑶池数据库的解答一

简介: 阿里云 瑶池数据库的解答一

使用RDS的数据库

登录数据库

RDS数据库的登录

登录成功的界面

需要专门创建账户信息,否则的话是没有办法登录的。

进入之后,会有很多的学习指导

在进行数据集导入数据库的时候,可能会遇到以下的问题:

使用导入数据的方式处理所有的表创建以及表数据的导入处理

试题一的解答思路

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

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

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

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

以没门考试考试分数从高到低的排序,返回结果集:

解题思路:

第一步:先筛选出来分数的前三个数据:

select  * fROM `testattempt` order by score desc limit 3select  * fROM `testattempt` order by score desc limit 3

第二步:关联查询出来按照分数来查询前三的学生:

select  `test`.`name` ,s.`name` ,tt.`score`  fROM `testattempt` tt

left join `student` s on  tt.`studentId` = s.`id`

LEFT JOIN `test`  on `test`.`id` =tt.`testId`

order by score desc limit 3

第三步:按照每场考试,获取出来关于每场考试中,得分最高的学生:

select  tt1.`testId` ,tt1.`studentId` ,tt1.`score`  fROM `testattempt` tt1

left join (select DISTINCT  `score` ,`studentId`,  `testId` from `testattempt`) tt2

on tt1.`testId` = tt2.`testId`

and tt1.`score` <tt2.`score`

   and tt1.`studentId` =tt2.`studentId`

       group by tt1.`score` ,tt1.`testId`,tt1.`studentId`

       HAVING count(1)<3

      order by testId ,score desc

第四步:需要考虑出来,关于同一个 学生只考试一次的处理;

SELECT t.id, s.studentId, s.score

FROM (

 SELECT

   testId,

   MAX(score) AS max_score

 FROM testattempt

 GROUP BY testId

) ts

INNER JOIN testattempt s ON ts.testId = s.testId AND ts.max_score = s.score

INNER JOIN Test t ON s.testId = t.id

WHERE (

 SELECT COUNT(DISTINCT score)

 FROM testattempt s2

 WHERE s.testId = s2.testId AND s2.score >= s.score

) < 3

ORDER BY  t.id,s.score DESC;

第五步:可以执行的sql语句:

SELECT t.name as Test, st.name as Student, s.score

FROM (

 SELECT

   testId,

   MAX(score) AS max_score

 FROM testattempt

 GROUP BY testId

) ts

INNER JOIN testattempt s ON ts.testId = s.testId AND ts.max_score = s.score

INNER JOIN Test t ON s.testId = t.id

INNER JOIN student st on st.id=s.studentId

WHERE (

 SELECT COUNT(DISTINCT score)

 FROM testattempt s2

 WHERE s.testId = s2.testId AND s2.score >= s.score

) < 3

ORDER BY  t.id,s.score DESC;


最后:

这道题目最大的难点是每个人都有参与多次考试的处理,每次只能获取到该门成绩最大的那个值作为成绩,并且需要取前三名,如果成绩是100、98、96、96、96;意思是这四个人都是前三名,只不过第三个成绩96、与第四个成绩96的成绩是一样的。并列第三名。

相关文章
|
2月前
|
存储 关系型数据库 分布式数据库
喜报|阿里云PolarDB数据库(分布式版)荣获国内首台(套)产品奖项
阿里云PolarDB数据库管理软件(分布式版)荣获「2024年度国内首版次软件」称号,并跻身《2024年度浙江省首台(套)推广应用典型案例》。
|
3月前
|
关系型数据库 分布式数据库 数据库
再获殊荣,阿里云PolarDB数据库蝉联SIGMOD最佳论文奖
内存池化技术新突破,阿里云PolarDB蝉联SIGMOD最佳论文奖
|
2月前
|
SQL 人工智能 数据管理
阿里云瑶池数据库 Data Agent for Meta 正式发布,让 AI 更懂你的业务!
阿里云瑶池数据库推出 Data Agent for Meta,通过智能体技术实现数据管理自主化与智能化,解决 AI Agent 在企业落地中的“看不懂、找不到、不敢动”数据难题。它以业务语义理解为核心,提供资产盘点、语义搜索等功能,助力企业释放AI生产力,推动数据治理向智能决策升级。
|
2月前
|
关系型数据库 分布式数据库 数据库
阿里云PolarDB数据库蝉联SIGMOD最佳论文奖
阿里云PolarDB凭借全球首创基于CXL Switch的分布式内存池技术,在SIGMOD 2025上荣获工业赛道“最佳论文奖”,连续两年蝉联该顶会最高奖项。其创新架构PolarCXLMem打破传统RDMA技术瓶颈,性能提升2.1倍,并已落地应用于内存池化场景,推动大模型推理与多模态存储发展,展现CXL Switch在高速互联中的巨大潜力。
阿里云PolarDB数据库蝉联SIGMOD最佳论文奖
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
客户说|知乎基于阿里云PolarDB,实现最大数据库集群云原生升级
近日,知乎最大的风控业务数据库集群,基于阿里云瑶池数据库完成了云原生技术架构的升级。此次升级不仅显著提升了系统的高可用性和性能上限,还大幅降低了底层资源成本。
|
4月前
|
人工智能 关系型数据库 分布式数据库
媒体声音|从亚太到欧美,阿里云瑶池数据库凭何成为中企出海的技术底气?
在中企出海的时代浪潮中,瑶池数据库正凭借其技术创新、场景化解决方案、智能化能力、全球化布局,成为企业跨越挑战、构建全球竞争力的关键伙伴;同时也以硬核的技术实力证明了中国数据库的国际竞争力。
|
3月前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
560 1
|
4月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
202 62

热门文章

最新文章