力扣之1783.大满贯数量

文章目录

  • [1. 1783.大满贯数量](#1. 1783.大满贯数量)
    • [1.1 题干](#1.1 题干)
    • [1.2 建表](#1.2 建表)
    • [1.3 题解](#1.3 题解)
    • [1.4 结果截图](#1.4 结果截图)

1. 1783.大满贯数量

1.1 题干

表: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 建表

复制代码
Create table If Not Exists Players (player_id int, player_name varchar(20))
Create table If Not Exists Championships (year int, Wimbledon int, Fr_open int, US_open int, Au_open int)
Truncate table Players
insert into Players (player_id, player_name) values ('1', 'Nadal')
insert into Players (player_id, player_name) values ('2', 'Federer')
insert into Players (player_id, player_name) values ('3', 'Novak')
Truncate table Championships
insert into Championships (year, Wimbledon, Fr_open, US_open, Au_open) values ('2018', '1', '1', '1', '1')
insert into Championships (year, Wimbledon, Fr_open, US_open, Au_open) values ('2019', '1', '1', '2', '2')
insert into Championships (year, Wimbledon, Fr_open, US_open, Au_open) values ('2020', '2', '1', '2', '2')

1.3 题解

复制代码
select p.player_id,
       p.player_name,
       sum(player_id=wimbledon)+sum(player_id=fr_open)+sum(player_id=us_open)+sum(player_id=au_open) as grand_slams_count
from players p,championships c
group by p.player_id, p.player_name
having grand_slams_count>0
;

1.4 结果截图

相关推荐
AC赳赳老秦2 分钟前
企业级合规审计体系:用 OpenClaw 落地采集全链路留痕,自动生成合规审计报告
java·python·django·beautifulsoup·php·deepseek·openclaw
ApacheSeaTunnel10 分钟前
一个关于数据集成的真相:链路 Success 不等于数据真实可靠
大数据·开源·数据集成·seatunnel·技术分享·数据同步
hengcaib36 分钟前
2026工程项目信息平台能力解析:中策大数据建筑工业双赛道的全周期服务实力
大数据
吃杠碰小鸡1 小时前
VsCode中开发Java项目
java·vscode
tedcloud1231 小时前
Awesome DSH Plugin 怎么用?给 DeepSeek Harness 搭建自己的插件生态
大数据·linux·服务器·人工智能·音视频
楷哥爱开发1 小时前
IPFoxy爬虫代理配置指南:从0搭建Crawl4AI网页爬虫教程
大数据·运维·人工智能·爬虫
宠友信息1 小时前
内容社区源码开发实践解析,用Spring Boot打造1:1仿小红书源码平台
java·spring boot·redis·websocket·mysql·spring·uni-app
云间月13141 小时前
Elasticsearch 数据怎么看?部署 Kibana,从索引查询到可视化图表
大数据·elasticsearch·jenkins
码农coding1 小时前
android12 点击桌面应用图标启动Activity流程
android
行百里er1 小时前
加个依赖就生效?一行搞定 Spring Boot Starter 自动装配
java·后端·监控