力扣512(MySQL)-游戏玩法分析Ⅱ(简单)

发布时间 2023-03-22 21:09:12作者: 我不想一直当菜鸟

题目:

需求:请编写一个 SQL 查询,描述每位玩家首次登陆的设备名称

查询结果格式在以下示例中:

 

解题思路:

方法一:使用dense_rank() over(partition by ...order by ...)先以player_id分组,再按登录时期进行排序,最后再筛选出排序为1的设备id。

 方法二:

①先筛选出每个用户的第一次登录时间,作为临时表b

1 SELECT 
2   player_id,  
3   min(event_date) as first_login
4 FROM activity 
5 GROUP by player_id

②将activity表与临时表进行关联,关联条件是:a.player_id = b.player_id and a.event_date = b.first_login;然后输出设备id

 方法三:使用where() in来筛选符合条件的数据