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

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

使用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的成绩是一样的。并列第三名。

相关文章
|
17天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
26天前
|
运维 数据库 数据库管理
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
云数据库问题之阿里云在运营商领域数据库替换的整体解决方案要如何实现
|
26天前
|
关系型数据库 OLAP 分布式数据库
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
核心系统转型问题之Gartner分析师对阿里云数据库的评价是啥样的
|
25天前
|
存储 监控 安全
阿里云数据库(ADB)的多租户秘籍:资源隔离的魔法如何施展?
【8月更文挑战第27天】多租户系统在云计算与大数据领域日益重要,它让不同用户或组织能在共享基础设施上独立运行应用和服务,同时确保资源隔离与安全。ADB(如阿里云数据库)通过资源组及标签实现高效多租户隔离。资源组作为一种软隔离策略,允许为不同租户分配独立的计算和存储资源,并设置资源上限;资源标签则支持更细粒度的硬隔离,可为每个数据库表或查询指定特定标签,确保资源有效分配。此外,ADB还提供了资源监控与告警功能,帮助管理员实时监控并调整资源分配,避免性能瓶颈。这种灵活且高效的资源隔离方案为多租户环境下的数据处理提供了强大支持。
67 0
|
26天前
|
Cloud Native 数据管理 数据挖掘
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
核心系统转型问题之阿里云数据库用户需求的通用性和差异性如何平衡
|
10天前
|
存储 缓存 关系型数据库
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
在云原生存算分离架构下,多计算集群的实现从技术方案上看似乎并不存在过多难题。但从产品的角度而言,具备成熟易用的多计算集群能力且能运用于用户实际业务场景中,还有较多核心要点需要深度设计
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
|
26天前
|
存储 运维 Cloud Native
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
核心系统转型问题之阿里云数据库在国际市场的布局情况咋样
|
4天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
6天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
66 11
|
25天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~