数据库考核
文件要求:专业,班级,姓名。例如:计算111张三.md 考核标准:
-
格式及内容,请遵守markdown文件的语法。
-
请填写正确的SQL语句,而不仅仅是结果。
1 统计出场率最高的三位英雄
字段要求:英雄名称,出场次数
SELECT hero,COUNT(hero) from match_info
GROUP BY hero
ORDER BY COUNT(hero) DESC
LIMIT 3;
查询结果:
2 统计Yagao选手使用最多的三位英雄
字段要求:英雄名称,出场次数
SELECT hero,COUNT(hero) from match_info
WHERE player_id=(SELECT id from player WHERE `name`='YAGAO')
GROUP BY hero
ORDER BY COUNT(hero) DESC
LIMIT 3;
查询结果:
3 统计所有使用过Nautilus的选手,以及选手的队伍
字段要求:选手ID,队伍ID,选手名称,队伍名称
SELECT player.id as '选手id',team.id as '队伍id',player.`name` as '选手',team.`name` as '队伍'
from player,team
WHERE player.id in (SELECT player_id FROM match_info WHERE hero='Nautilus')
AND team.id in (SELECT team_id FROM match_info WHERE hero='Nautilus')
查询结果:
4 统计所有bo中人头数最高的三个队伍
字段要求:oid,bo,队伍ID,队伍名称,kill
SELECT team_id as '队伍id',team.`name` as '队伍', count(`kill`) as '击杀总数'
from match_info join team on match_info.team_id=team.id
GROUP BY team_id
ORDER BY sum('kill') DESC
LIMIT 3
查询结果:
5 统计oid为10136,BO为3的场次中,所有选手的评分
评分计算公式:kill+0.5ass-death+10 要求字段:oid,bo,队伍ID,选手ID,选手昵称,评分
SELECT oid , bo , team.id as 队伍ID , player.id as 选手ID , player.`name` as 选手昵称 , `kill`+0.5*ass-death+10 as 评分
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(hero)
FROM match_info
WHERE location='TOP'
GROUP BY hero
ORDER BY COUNT(hero) DESC
查询结果:
7 统计所有使用Jinx的选手中,kill最高的三位选手
要求字段:选手ID,选手昵称,kill
SELECT player_id,player.`name`,sum(`kill`)
FROM match_info JOIN player ON match_info.player_id=player.id
WHERE hero='Jinx'
GROUP BY player_id
ORDER BY sum(`kill`) desc
LIMIT 3;
查询结果:
8 统计Bin选手使用过的所有英雄中,KDA最高的三位
要求字段:选手ID,选手昵称,英雄名称,KDA值
SELECT hero,(SUM(`kill`)+SUM(ass))/NULLIF(SUM(death),0) AS KDA
from match_info JOIN player on match_info.player_id=player.id
WHERE player.`name`='BIN'
GROUP BY hero
ORDER BY KDA DESC
LIMIT 3;
查询结果:
9 统计On选手使用过的英雄,计算KDA,并按照使用次数倒序排列
要求字段:选手ID,选手昵称,英雄名称,使用次数,KDA
SELECT hero,(SUM(`kill`)+SUM(ass))/NULLIF(SUM(death),0) AS KDA from match_info JOIN player on match_info.player_id=player.id WHERE player.`name`='ON' GROUP BY hero ORDER BY count(hero) DESC
查询结果:
10 统计所有BOT位的英雄的使用次数,KDA
要求字段:英雄名称,使用次数,KDA
SELECT hero,COUNT(hero),(SUM(`kill`)+SUM(ass))/NULLIF(SUM(death),0) AS KDA from match_info WHERE location='BOT' GROUP BY hero
查询结果:
11 统计所有的英雄中,KDA最高的三个倒序排列,需要带上队伍名称和选手名称
要求字段:选手ID,选手昵称,队伍名称,英雄名称,KDA
SELECT hero,(`kill`+ass)/NULLIF(death,0) AS KDA,team.`name` as '队伍',player.`name` as '选手' from match_info JOIN player on match_info.player_id=player.id JOIN team on match_info.team_id=team.id ORDER BY KDA desc LIMIT 3;
查询结果:
12 设计一个计算MVP的公式,并给出自己的理解
要求:给出一个明确的公式,并描述这个公式适用场景和各参数的说明。字数不少于200字。
MVP = (KDA + CS + Objectives) / Deaths 其中: KDA(击杀、死亡、助攻比): 玩家在游戏中的击杀数与助攻数相加,然后除以死亡次数。这反映了玩家在游戏中的杀敌和团队协作能力。一个高KDA值通常表示较好的表现。 CS(击杀小兵数): 玩家击杀的敌方小兵数量。这表明了玩家的农场能力,即获取金币和经验的能力。高CS通常意味着更高级别和更好的装备。 Objectives(目标物): 玩家对游戏中的重要目标物(如塔、小龙、大龙等)的贡献。这反映了玩家对团队战略的贡献,以及对游戏胜利的影响。 Deaths(死亡次数): 玩家死亡的次数。这用于惩罚频繁死亡的玩家,因为死亡可能会导致对方团队获得金币和经验。 适用场景: 这个MVP计算公式适用于评估英雄联盟游戏中玩家的表现。通过综合考虑KDA、CS、目标物、死亡次数等因素,可以更全面地评估一个玩家在游戏中的贡献度。然而,需要注意的是,英雄联盟是一个团队合作游戏,MVP并不能完全反映一个玩家的贡献,因为团队协作也是非常重要的。因此,MVP只是一个参考指标,不应该被过分强调,而应该与其他因素一起考虑,以更好地评估玩家的表现。
标签:info,hero,数据库,player,选手,考核,id,match From: https://www.cnblogs.com/maikemuzi/p/17722873.html