SQL 刷题/【京东】使用 LATERAL JOIN 查询战队最近 3 场比赛表现
上一题下一题中等通过率 0%

【京东】使用 LATERAL JOIN 查询战队最近 3 场比赛表现

JOIN 连接窗口函数CASE WHEN用户行为分析面试真题

题目描述

来源:京东 SQL 面试真题

某电竞数据分析平台记录了各支职业战队的比赛数据。平台需要快速查询每支战队的近期比赛表现,供赛事解说和数据分析师使用。

数据表

esports_teams 电竞战队表

字段类型说明
team_idINT战队编号,主键
team_nameVARCHAR(50)战队名称
regionVARCHAR(20)所属赛区
game_typeVARCHAR(30)参赛游戏类型

match_records 比赛记录表

字段类型说明
match_idINT比赛编号,主键
team_idINT战队编号,关联 esports_teams.team_id
match_dateDATE比赛日期
opponentVARCHAR(50)对手战队名称
killsINT本队总击杀数,保证 ≥ 1
deathsINT本队总死亡数,保证 ≥ 1
is_winTINYINT是否获胜:1 = 胜,0 = 负

问题

请使用 LATERAL JOIN 查询每支战队最近 3 场比赛的记录。

输出以下字段:

字段说明
team_name战队名称
region所属赛区
match_date比赛日期
opponent对手战队名称
kills击杀数
deaths死亡数
kda_ratioKDA 比值,即 kills / deaths,四舍五入保留 2 位小数
result比赛结果,获胜显示“胜”,失败显示“负”

排序规则

结果按 team_id 升序排列;同一战队内按 match_date 降序排列,若日期相同则按 match_id 升序排列。

比赛不足 3 场的战队显示其全部比赛记录;没有比赛记录的战队不输出。

数据样例

当前运行环境
team_idPKINTteam_nameVARCHAR(50)regionVARCHAR(20)game_typeVARCHAR(30)
1星火战队LPL英雄联盟
2远航战队LCK英雄联盟
3极光战队LEC英雄联盟
4赤焰战队LPL英雄联盟
输入数据显示 4 / 4
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里