news 2026/8/1 1:43:13

力扣1783-大满贯数量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣1783-大满贯数量

表:Players

+----------------+---------+ | Column Name | Type | +----------------+---------+ | player_id | int | | player_name | varchar | +----------------+---------+ player_id 是这个表的主键(具有唯一值的列) 这个表的每一行给出一个网球运动员的 ID 和 姓名

表:Championships

+---------------+---------+ | Column Name | Type | +---------------+---------+ | year | int | | Wimbledon | int | | Fr_open | int | | US_open | int | | Au_open | int | +---------------+---------+ year 是这个表的主键(具有唯一值的列) 该表的每一行都包含在每场大满贯网球比赛中赢得比赛的球员的 ID

编写解决方案,找出每一个球员赢得大满贯比赛的次数。结果不包含没有赢得比赛的球员的ID 。

结果集无顺序要求

结果的格式,如下所示。

示例 1:

输入:Players 表: +-----------+-------------+ | player_id | player_name | +-----------+-------------+ | 1 | Nadal | | 2 | Federer | | 3 | Novak | +-----------+-------------+ Championships 表: +------+-----------+---------+---------+---------+ | year | Wimbledon | Fr_open | US_open | Au_open | +------+-----------+---------+---------+---------+ | 2018 | 1 | 1 | 1 | 1 | | 2019 | 1 | 1 | 2 | 2 | | 2020 | 2 | 1 | 2 | 2 | +------+-----------+---------+---------+---------+输出:+-----------+-------------+-------------------+ | player_id | player_name | grand_slams_count | +-----------+-------------+-------------------+ | 2 | Federer | 5 | | 1 | Nadal | 7 | +-----------+-------------+-------------------+解释:Player 1 (Nadal) 获得了 7 次大满贯:其中温网 2 次(2018, 2019), 法国公开赛 3 次 (2018, 2019, 2020), 美国公开赛 1 次 (2018)以及澳网公开赛 1 次 (2018) 。 Player 2 (Federer) 获得了 5 次大满贯:其中温网 1 次 (2020), 美国公开赛 2 次 (2019, 2020) 以及澳网公开赛 2 次 (2019, 2020) 。 Player 3 (Novak) 没有赢得,因此不包含在结果集中。

思路:

1、整理所有大满贯冠军记录
题目中大满贯冠军分别存放在不同的字段中,包括温网、法网、美网和澳网。为了便于统计,需要将这四个字段中的冠军记录合并到同一个结果集中,使每一行只代表一次夺冠记录。

2、合并不同赛事的冠军数据
通过将四项赛事的冠军列依次合并,形成一个统一的冠军列表。这样处理后,每位球员每获得一次大满贯冠军,就会在结果集中对应一条记录。

3、关联球员基本信息
将合并后的冠军记录与球员表进行关联,通过球员 ID 获取球员姓名等基本信息,从而明确每一条冠军记录属于哪位球员。

4、按球员维度进行统计
以球员 ID 和球员姓名为分组条件,对冠军记录进行计数。统计结果表示每位球员获得大满贯冠军的总次数。

5、输出最终结果
最终返回球员编号、球员姓名以及对应的大满贯冠军次数,得到每位球员的 Grand Slam 冠军数量统计结果。

代码:

select player_id , player_name, count(*) as grand_slams_count from players t1 join (select wimbledon from Championships union all select fr_open from Championships union all select us_open from Championships union all select au_open from Championships) t2 on t1.player_id = t2.Wimbledon group by player_id,player_name
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/1 13:06:31

LaTeX学术报告模板:用于发表关于ACE-Step模型的研究成果

LaTeX学术报告模板:用于发表关于ACE-Step模型的研究成果 在AI生成内容浪潮席卷创意产业的今天,音乐创作正经历一场静默却深刻的变革。过去需要数年训练才能掌握的作曲技巧,如今通过一个文本提示或一段旋律输入,就能由算法自动生成…

作者头像 李华
网站建设 2026/8/1 2:41:36

3款必装VLC皮肤推荐:让你的播放器秒变专业影音中心的终极方案

还在为VLC播放器单调的界面发愁吗?每天面对相同的灰色调,观影体验大打折扣,工作学习时也容易产生视觉疲劳。VLC皮肤定制正是解决这一痛点的完美方案,通过界面重构让你的播放器焕然一新。 【免费下载链接】VeLoCity-Skin-for-VLC C…

作者头像 李华
网站建设 2026/8/1 14:50:23

Conda环境隔离保障Qwen-Image-Edit-2509依赖安全

Conda环境隔离保障Qwen-Image-Edit-2509依赖安全 在AI模型部署日益复杂的今天,一个看似不起眼的Python包版本差异,就可能让原本运行稳定的图像编辑系统突然“失明”——比如把用户要求删除的对象变成色块,或将中英文文字渲染成乱码。这种问题…

作者头像 李华
网站建设 2026/8/1 14:44:16

29、AWK实用程序与脚本编程指南

AWK实用程序与脚本编程指南 在AWK编程中,有许多实用的程序和脚本技巧,能够帮助我们更高效地处理数据、生成报告以及进行文件操作。下面将介绍一些常见的应用场景及对应的实现方法。 1. 字符处理函数的改进 最初编写的程序中,字符转写功能可能需要手动实现。但后来发现Bri…

作者头像 李华
网站建设 2026/7/31 19:12:04

2025/12/15英语打卡

1.我做过最正确的事情是不再跟所有人诉说我生活中的事情 The best thing i ever did is stop telling my life to everyone. The best thing i ever did is stop telling everyone what is going on in my life. 成分: 主系表,表语 - stop xxxx重要短语&…

作者头像 李华
网站建设 2026/8/1 5:52:22

31、gawk 高级功能:双向通信、网络编程、性能分析与国际化

gawk 高级功能:双向通信、网络编程、性能分析与国际化 在数据处理和编程领域,gawk 是一款功能强大的工具。它不仅能进行基本的数据处理和脚本编写,还具备许多高级功能,如与其他进程的双向通信、网络编程、性能分析以及国际化支持等。下面我们将详细介绍这些功能。 与其他…

作者头像 李华