当前位置: 首页 > article >正文

力扣之1783.大满贯数量

文章目录

  • 1. 1783.大满贯数量
    • 1.1 题干
    • 1.2 建表
    • 1.3 题解
    • 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 结果截图

在这里插入图片描述


http://www.kler.cn/a/303325.html

相关文章:

  • Java:解决因为大小写不规范导致的接收不到数据
  • DBeaver 连接 OceanBase Oracle 租户
  • Dolby TrueHD和Dolby Digital Plus (E-AC-3)编码介绍
  • Unity 性能优化方案
  • 自由学习记录(21)
  • Android Studio更新成2024.1.2版本后旧项目Gradle配置问题
  • zabbix之钉钉告警
  • SpringMVC与SpringBoot的区别
  • Docker续9:使用docker-compose部署nmt项目,在haproxy中代理mysql负载均衡
  • k8s的搭建
  • 【Clickhouse】Clickhouse数据库简介
  • mysql 日志恢复
  • Python数据分析与可视化基础教程
  • Linux系统下配置和测试Redis服务
  • 探索未来住宿体验:酒店触摸开关的科技魅力
  • 【API安全】威胁猎人发布超大流量解决方案
  • SVN的使用技巧
  • [机器学习]聚类算法
  • Servlet学习详解--基本涵盖所有Servlet知识点
  • 取消Cursor的注释斜体字风格
  • Java8函数式接口全攻略
  • 北大阿里:新出炉的LLM偏好对齐方法综述
  • SAP Fiori-Vscode 环境搭建中npm报错
  • Ansible使用kubeadm方式一键安装k8s
  • 跨越日语障碍2024轻松实现日语阅读的好帮手
  • 旅游网站设计与实现:SpringBoot技术手册