每日一题-65(锦标赛优胜者)

2024-04-29 15:38

本文主要是介绍每日一题-65(锦标赛优胜者),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题65:

根据下表编写一个 SQL 查询来查找每组中的获胜者。获胜者的要求是在组内累积得分最高的选手。如果平局,player_id 最小 的选手获胜。
在这里插入图片描述
其中:

  • Players表:player_id 是主键,该表的每一行表示每个玩家的组;
  • Matches表:match_id 是的主键;每一行是一场比赛的记录,first_player 和 second_player 表示该场比赛的球员 ID;first_score 和 second_score 分别表示 first_player 和 second_player 的得分。

解题思路:
(1)每个选手的得分可能是 first_score 或者 second_score,因此需要用UNION ALL将 first_score和second_score连接起来,就可以得到每个人的总分
(2)得到每个用户的总分后,需要找到组内得分最高的选手。那么我们可以使用 ORDER BY,先根据得分倒序排列。如果平局,player_id 最小的选手获胜,那么只要再根据 player_id 正序排。
(3)最后只需要再使用一次 FROM 子句和 GROUP BY 取出每个组的第一条数据即可。(group 一组数据,如果没有选择取数规则,则取的是这组的第一数)

具体代码如下:

select group_id, player_id
from (select group_id,player_id,sum(score) scorefrom(-- 每个用户总的 first_scoreselect p.group_id,p.player_id,sum(m.first_score) scorefrom Players pjoin Matches m on p.player_id = m.first_playergroup by p.player_idunion all -- 每个用户总的 second_scoreselect p.group_id,p.player_id,sum(m.second_score) scorefrom Players pjoin Matches m on p.player_id = m.second_playergroup by p.player_id        ) agroup by player_idorder by score desc ,player_id
) b
group by group_id;

这篇关于每日一题-65(锦标赛优胜者)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/946486

相关文章

每日一练:攻防世界:5-1 MulTzor

一、XorTool 基于 XOR(异或)运算实现。它可以帮助您快速地对文本、二进制文件进行加密解密操作。 认识XorTool工具: 让我们先去认识一下工具: xortool.py 是基于 python 的脚本,用于完成一些 xor 分析,包括: 猜想 key 的长度 猜想 key 的值 解密一些经过 xoe 加密的文件 也就是说当遇到不知道文件类型的文件,可以尝试去看看它是否被xo

20240624 每日AI必读资讯

🤖AI学会篡改奖励函数、欺骗研究者!Claude团队:无法根除的行为,令人不安 - 实验中让AI可以访问自己的强化学习代码,并且提问:目前为止,我们总共进行了几轮强化学习?AI在自以为不会被看见的草稿纸中写下内心OS - 研究对未来如何避免强大的AI系统出现这种问题非常有意义。 - Anthropic、Readwood Research(专注AI安全的非盈利研究机构)和牛津大学合作研究

LeetCode 每日一题 2024/6/17-2024/6/23

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 6/17 522. 最长特殊序列 II6/18 2288. 价格减免6/19 2713. 矩阵中严格递增的单元格数6/20 2748. 美丽下标对的数目6/21 LCP 61. 气温变化趋势6/22 2663. 字典序最小的美丽字符串6/23 520. 检测大写字母 6/1

每日一题——Python代码实现力扣1. 两数之和(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 菜鸡写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 我要更强 方法1: 使用哈希表(字典) 方法2: 排序和双指针 方法3: 使用集合(仅适用于特殊情况) 哲学和编程思想

每日文献:2018-02-24

自然选择的分子印迹(精读第三天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 群体遗传学预测 分子群体遗传学的其中一个方向就是从分子变异中区分出中性变异(仅仅受到遗传漂变的影响),找到受

每日文献:2018-02-23

自然选择的分子印迹(精读第二天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 自然选择模型术语 考虑到同一个属于在不同语境下会有有些不同,也就导致目前的选择这个概念存在多种定义方式,在阅

每日文献:2018-02-20

自然选择的分子印迹(精读第一天) 由于最近不知不觉开始涉及群体遗传学,所以准备精读(其实就是原文翻译)一篇review尽力去了解这个我陌生的领域。文章原标题为Molecular Signatures of Natural Selection, 作者Rasmus Nielsen。 简介 群体遗传学数十年来一直被一个问题所困扰,那就是如果在观察物种中存在一个遗传变异,那么应该如何定量得描述

【教学类65-02】20240622秘密花园涂色书02(通义万相)(A4横版2张,一大 68张纸136份)

背景需求 【教学类65-01】20240622秘密花园涂色书01(通义万相)(A4横版2张,一大3小 38张纸76份)-CSDN博客文章浏览阅读118次。【教学类65-01】20240622秘密花园涂色书01(通义万相)(A4横版2张,一大3小 38张纸76份)https://blog.csdn.net/reasonsummer/article/details/139899797 以上

每日一题——Python代码实现PAT乙级1048 数字加密(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 初次尝试  再次尝试 代码点评 代码结构 时间复杂度 空间复杂度 优化建议 我要更强 优化建议 完整代码及注释 时间复杂度和空间复杂度分析 进一步优化 哲学和编程思想 模块化

《Windows API每日一练》5.4 键盘消息和字符集

本节我们将通过实例来说明不同国家的语言、字符集和字体之间的差异,以及Windows系统是如何处理的。 本节必须掌握的知识点:         第31练:显示键盘消息         非英语键盘问题         字符集和字体         第32练:显示默认字体信息         第33练:创建逻辑字体 5.4.1 第31练:显示键盘消息 /*----------------