LeetCode(数据库)- 游戏玩法分析 III

Posted Lux_Sun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(数据库)- 游戏玩法分析 III相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

 

题目大意:略。

 

解题思路:

  • 解决方案(1):自变量,算出每一行记录与上一行记录的累加即可
  • 解决方案(2):t1.event_date>=t2.event_date + GROUP BY t1.player_id,t1.event_date 是关键:(自连接)用 t1 比自己还小的所有在 t1.player_id,t1.event_date 范围内的时间,就是到达 t1 时间的总和游戏数

 

AC 代码

-- 解决方案(1)
SELECT RS.player_id, RS.event_date, RS.games_played_so_far
FROM (SELECT player_id, event_date, CONVERT(@sum:=IF(@p<>player_id, games_played, @sum + games_played), SIGNED) games_played_so_far, @p:=player_id
FROM Activity, (SELECT @sum:=0, @p:=-1) init
ORDER BY player_id, event_date) RS;

-- 解决方案(2)
SELECT t1.player_id,
       t1.event_date,
       SUM(t2.games_played) games_played_so_far
FROM Activity t1,Activity t2
WHERE t1.player_id=t2.player_id AND t1.event_date>=t2.event_date
GROUP BY t1.player_id,t1.event_date;

以上是关于LeetCode(数据库)- 游戏玩法分析 III的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode(数据库)- 游戏玩法分析 V

LeetCode(数据库)- 游戏玩法分析 I

LeetCode(数据库)- 游戏玩法分析 IV

LeetCode(数据库)- 游戏玩法分析 II

LeetCode:Database 09.游戏玩法分析 I

LeetCode:Database 10. 游戏玩法分析 II