我正试图从特定球队的球员最近20个方框得分中提取信息。我查看了球队名单,并提取了这些球员参加过的所有比赛的相关信息。我希望每个球员最近20场比赛。我遇到了LIMIT和GROUPs的困难。我在这里读到了一个答案,关于用用户定义的变量创建一个排名列,然后查询相关的排名,但我无法让排名部分起作用。
目前每行排名为1。
逻辑应该是对于玩家来说,它将最近的日期排在第1位,然后随着行结果及时倒退而向上计数。对于新玩家,等级应重置为1,然后根据需要再次计数。然后我会查询结果并限制排名<21。
非常感谢任何帮助!
SET @currcount = NULL, @currvalue = NULL;
SELECT
league_roster.player_name,
player_boxes.date, player_boxes.minutes, player_boxes.FG,
player_boxes.FGA, player_boxes.3P, player_boxes.3PA, player_boxes.ft, player_boxes.fta, player_boxes.orb,
player_boxes.drb, player_boxes.tov,
matchup_teamtotals.game_minutes, matchup_teamtotals.team_possessions,
matchup_teamtotals.opponent_possessions, matchup_teamtotals.possible_DRB, matchup_teamtotals.possible_ORB,
league_roster.team,
@currcount := IF(@currvalue = player_name, @currcount+1, 1) AS rank,
@currvalue := player_name AS whatever
FROM league_roster
INNER JOIN player_boxes ON player_boxes.player = player_name
INNER JOIN matchup_teamtotals ON matchup_teamtotals.matchup_id = player_boxes.matchup_id
WHERE league_roster.team = "Philadelphia 76ers"
ORDER BY player_name, date DESC
current output:
player: date: other fields rank:
Tim Blackburn Dec 31 2015 blah blah blah 1
Tim Blackburn Dec 28 2015 blah blah blah 1
Tim Blackburn Dec 27 2015 blah blah blah 1
Randy Johnson Dec 31 2015 blah blah blah 1
Randy Johnson Dec 27 2015 blah blah blah 1
desired output:
player: date: other fields rank:
Tim Blackburn Dec 31 2015 blah blah blah 1
Tim Blackburn Dec 28 2015 blah blah blah 2
Tim Blackburn Dec 27 2015 blah blah blah 3
Randy Johnson Dec 31 2015 blah blah blah 1
Randy Johnson Dec 27 2015 blah blah blah 2