数据库考核
文件要求:专业,班级,姓名。例如:计算111张三.md 考核标准:
-
格式及内容,请遵守markdown文件的语法。
-
请填写正确的SQL语句,而不仅仅是结果。
1 统计出场率最高的三位英雄
字段要求:英雄名称,出场次数
SELECT hero 英雄名称,COUNT(hero) 出场次数
FROM match_info
GROUP BY 英雄名称
ORDER BY 出场次数 DESC
LIMIT 3
;
查询结果:
2 统计Yagao选手使用最多的三位英雄
字段要求:英雄名称,出场次数
SELECT hero 英雄名称,COUNT(*) 出场次数
FROM match_info
JOIN player ON match_info.player_id=player.id
WHERE player.`name`='YAGAO'
GROUP BY 英雄名称
ORDER BY 出场次数 DESC
LIMIT 3
;
查询结果:
3 统计所有使用过Nautilus的选手,以及选手的队伍
字段要求:选手ID,队伍ID,选手名称,队伍名称
SELECT player.`name` as '选手名称' , team.`name` as '队伍名称',player.id as '选手id',team.id as '队伍id'
FROM match_info
JOIN player ON match_info.player_id = player.id
join team on match_info.team_id = team.id
WHERE hero = 'Nautilus'
;
查询结果:
4 统计所有bo中人头数最高的三个队伍
字段要求:oid,bo,队伍ID,队伍名称,kill
SELECT team.`name` as '队伍名称' ,`kill`
FROM match_info
join team on match_info.team_id = team.id
ORDER BY `kill` DESC
LIMIT 3;
查询结果:
5 统计oid为10136,BO为3的场次中,所有选手的评分
评分计算公式:kill+0.5ass-death+10 要求字段:oid,bo,队伍ID,选手ID,选手昵称,评分
SELECT oid, player.id as '选手id' , team.id as '队伍id',player.`name` as '选手名称', team.`name` as '队伍名称',(`kill`+0.5*ass-death+10) as marks
FROM match_info
JOIN player ON match_info.player_id = player.id
join team on match_info.team_id = team.id
WHERE oid=10136 AND bo=3
;
查询结果:
6 统计所有比赛中Top位英雄的出场情况,按照次数倒序
要求字段:英雄名称,出场次数
SELECT hero 英雄名称 , COUNT(*) 出场次数
FROM match_info WHERE location = 'TOP'
GROUP BY 英雄名称
ORDER BY 出场次数 DESC;
查询结果:
7 统计所有使用Jinx的选手中,kill最高的三位选手
要求字段:选手ID,选手昵称,kill
SELECT player.id as '选手ID',player.`name` as '选手昵称',`kill`
FROM match_info
JOIN player ON match_info.player_id = player.id
WHERE hero='Jinx'
GROUP BY player.`name`
ORDER BY `kill` DESC
LIMIT 3
;
查询结果:
8 统计Bin选手使用过的所有英雄中,KDA最高的三位
要求字段:选手ID,选手昵称,英雄名称,KDA值
SELECT player.id as 选手ID ,player.`name` as 选手昵称 , hero as 英雄名称 , (`kill`+ass)/death AS KDA
FROM match_info
JOIN player ON match_info.player_id = player.id
WHERE player.`name`='BIN'
GROUP BY 英雄名称
ORDER BY KDA DESC
LIMIT 3;
查询结果:
9 统计On选手使用过的英雄,计算KDA,并按照使用次数倒序排列
要求字段:选手ID,选手昵称,英雄名称,使用次数,KDA
SELECT player.id 选手ID ,player.`name` as 选手昵称 , hero as 英雄名称 , COUNT(*) as 使用次数 , (`kill`+ass)/death as KDA FROM match_info JOIN player ON match_info.player_id = player.id WHERE player.`name` = 'ON' GROUP BY 英雄名称 ORDER BY 使用次数 DESC;
查询结果:
10 统计所有BOT位的英雄的使用次数,KDA
要求字段:英雄名称,使用次数,KDA
SELECT hero 英雄名称 , COUNT(*) as 使用次数 , (SUM(`kill`)+SUM(ass))/SUM(death) as KDA FROM match_info WHERE location = 'BOT' GROUP BY hero
查询结果:
11 统计所有的英雄中,KDA最高的三个倒序排列,需要带上队伍名称和选手名称
要求字段:选手ID,选手昵称,队伍名称,英雄名称,KDA
SELECT player.id as 选手ID , player.`name` as 选手昵称 ,team.`name` as 队伍名称 , hero as 英雄名称 ,(`kill`+ass)/death KDA FROM match_info JOIN player ON match_info.player_id = player.id JOIN team ON match_info.team_id = team.id GROUP BY hero ORDER BY KDA DESC LIMIT 3;
查询结果:
12 设计一个计算MVP的公式,并给出自己的理解
要求:给出一个明确的公式,并描述这个公式适用场景和各参数的说明。字数不少于200字,
公式:(kda50%+视野得分所占百分比20%10+对塔伤害所占百分比15%10+参团率所占百分比15%*10) KDA:【(k+A)/D】
适用场景说明: 我认为单局比赛中,我们需要针对上单和辅助位置做一些MVP公式的调整,将这两条路特有的优势处进行适当的提升,保证更公平的评选MVP而对塔伤害和视野得分的数据单位并不统一,所以我采用了所占百分比的形式来进行得分相加(百分比采用十分制)尽可能的与kda的分制进行接近,得出一个更加公平的评判标准 目前的位置中sup和top位置的选手能够更加多样化的评选标准进入到整个MVP的评选体系中 当然,这样可能会催生出,top位置对于破舰者这种对塔伤害高的装备的依赖,所以要适当调整装备数值,这个时候参团率就可以互相制衡这一种情况的发生(英雄联盟本质上是推塔游戏),辅助的视野得分(插排眼)算的上是辅助少数能够和其他位置进行pk的手段之一,这样辅助也能作为决定比赛成败的关键因素,野辅联动,会更大程度的提升比赛的观赏性,拉高整个评选标准的公平性。其次,(K+A)/D公式也可以最大限度的保证MID和BOT位置双C的实力评判标准,(包括JUN)位置,我们的MVP应该有更多真实公平的选择以此得出的mvp不再是以人头论成败,以KD论高低,诸如此类。若如此从新MVP进行评选则,队伍幸甚,游戏幸甚。
标签:player,选手,三位,英雄,出场,team,id,match,名称 From: https://www.cnblogs.com/maikemuzi/p/17722884.html