用户定义变量将项目排名为最新

时间:2016-07-23 20:49:01

标签: mysql mysql-variables

我正试图从特定球队的球员最近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

0 个答案:

没有答案