512-游戏玩法分析II

游戏玩法分析II

题目

表:活动表:

列名 类型
player_id int
device_id int
event_date date
games_played int

player_id,event_id是这张表的主键。

这个表格显示了一些游戏中玩家的活动。

每一行都是一个玩家的记录,该玩家在某一天使用某些设备注销之前登录并玩了一些游戏(可能是0)。

写一个查询每位玩家第一次登陆设备的sql。

查询结果的格式如下所示:

Activity table:

player_id device_id event_date games_played
1 2 2016-03-01 5
1 2 2016-5-02 6
2 3 2017-06-25 1
3 1 2016-03-02 0
3 4 2018-07-03 5

结果表:

player_id first_login
1 2016-03-01
2 2017-06-25
3 2016-03-02

思路

同上一个题目有点类似,这次要求其实是在上一个题目的基础上进一步查找。一样的思路,先找出第一次登陆的时间,然后使用这一次的查询作为临时表再次查询原表,找到playerid和event_date对应的时间即可.

代码

SELECT
    a.player_id, a.device_id
FROM
    Activity a
RIGHT JOIN (
        SELECT 
            player_id,
            min(event_date) AS first_date
        FROM
            Activity
        GROUP BY player_id  
    ) b
ON
    a.event_date = b.first_date
WHERE
    a.player_id = b.player_id;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容