550,游戏玩法分析四

游戏玩法分析四

分析

  1. 第一步:求总玩家数

    select
        count(distinct player_id)
    from activity;
    
  2. 第二步:求每位玩家首次登录的时间

    select
        player_id,
        min(event_date)
    from activity
    group by player_id;
    
  3. 判断哪些用户是连续两次登录的

    select
        *
    from activity
    -- 进行判断,如果有一位玩家的登录时间 减去 一天能在下面的结果中查到,则此用户是连续两天登录的
    where (player_id, date_sub(event_date, interval 1 day)) in (
        -- 每位玩家首次登录的时间
        select
            player_id,
            min(event_date)
        from activity
        group by player_id
    );
    
  4. 报告在首次登录的第二天再次登录的玩家的 比率,四舍五入到小数点后两位

    select
        round(count(*) /
    		-- 总玩家数
            (select count(distinct player_id) from activity)
        , 2) fraction
    from activity
    -- 进行判断,如果有一位玩家的登录时间 减去 一天能在下面的结果中查到,则此用户是连续两天登录的
    where (player_id, date_sub(event_date, interval 1 day)) in (
        -- 每位玩家首次登录的时间
        select
            player_id,
            min(event_date)
        from activity
        group by player_id
    );
    

实现

select
    round(count(*) /
		-- 总玩家数
        (select count(distinct player_id) from activity)
    , 2) fraction
from activity
-- 进行判断,如果有一位玩家的登录时间 减去 一天能在下面的结果中查到,则此用户是连续两天登录的
where (player_id, date_sub(event_date, interval 1 day)) in (
    -- 每位玩家首次登录的时间
    select
        player_id,
        min(event_date)
    from activity
    group by player_id
);

总结

这题与 即时食物配送二 很相似,思路和方法几乎一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草莓小子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值