美文网首页
【MySQL】LeetCode 534&550

【MySQL】LeetCode 534&550

作者: 每天要读书的Claire | 来源:发表于2020-02-18 19:17 被阅读0次
mysql> select * from activity
+-----------+-----------+------------+--------------+
| player_id | device_id | event_date   | games_played |
+-----------+-----------+------------+--------------+
|         1 |         2 | 2016-03-01 |            5 |
|         1 |         2 | 2016-05-02 |            6 |
|         2 |         3 | 2017-06-25 |            1 |
|         3 |         1 | 2016-03-02 |            0 |
|         3 |         4 | 2018-07-03 |            5 |
+-----------+-----------+------------+--------------+
5 rows in set (0.00 sec)

534 游戏玩法分析3

查询玩家在该日期之前所玩的游戏场数
mysql> select player_id,event_date,sum(games_played)over(partition by player_id order by event_date) as games_played_so_far
    -> from activity
    -> order by player_id,event_date;
+-----------+------------+---------------------+
| player_id | event_date | games_played_so_far |
+-----------+------------+---------------------+
|         1 | 2016-03-01 |                   5 |
|         1 | 2016-05-02 |                  11 |
|         2 | 2017-06-25 |                   1 |
|         3 | 2016-03-02 |                   0 |
|         3 | 2018-07-03 |                   5 |
+-----------+------------+---------------------+
5 rows in set (0.00 sec)

550 游戏玩法分析4

mysql> select * from activity
+-----------+-----------+------------+--------------+
| player_id | device_id | event_date   | games_played |
+-----------+-----------+------------+--------------+
|         1 |         2 | 2016-03-01 |            5 |
|         1 |         2 | 2016-03-02 |            6 |
|         2 |         3 | 2017-06-25 |            1 |
|         3 |         1 | 2016-03-02 |            0 |
|         3 |         4 | 2018-07-03 |            5 |
+-----------+-----------+------------+--------------+
5 rows in set (0.00 sec)
mysql> select round(count(distinct player_id)/(select count(distinct player_id)from activity ),2) as fraction
    -> from( select player_id,event_date,
    -> lead(event_date) over(partition by player_id)as next_log_date
    -> from activity ) T 
    -> where next_log_date is not null and datediff(next_log_date,event_date)=1;
+----------+
| fraction |
+----------+
|     0.33 |
+----------+
1 row in set (0.00 sec)

相关文章

网友评论

      本文标题:【MySQL】LeetCode 534&550

      本文链接:https://www.haomeiwen.com/subject/jbknfhtx.html