随笔 - 384  文章 - 0  评论 - 0  阅读 - 13万

力扣511(MySQL)-游戏玩法分析Ⅰ(简单)

题目:

活动表 Activity

写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。

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

 

 解题思路:

方法一:使用dense_rank() over(partition by ... order by ...):将登录时间按用户id进行分组然后升序排序,最后筛选出排序后为1的数据。

1  select player_id,event_date as first_login
2  from (
3      select player_id,event_date,dense_rank() over(partition by player_id order by event_date) as rnk 
4      from Activity
5      ) as a
6 where rnk = 1;

方法二:使用聚合函数min()和group by

1 select player_id,min(event_date) as first_login
2 from Activity
3 group by player_id;

 方法三:使用where() in

1 select player_id,event_date as first_login
2 from Activity
3 where (player_id, event_date) in(
4     select player_id, min(event_date) as first_login
5     from Activity
6     group by player_id
7 );

 

posted on   我不想一直当菜鸟  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示