leetcodeSQL: 游戏玩法分析 IV

2022/2/26 19:22:13

本文主要是介绍leetcodeSQL: 游戏玩法分析 IV,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述
思路和注意点
1.找到每个玩家id对应的login时间,这里用min + group by,注意若不加group b只会输出一行,因为只有一个min
2.然后用1的表left join 原表,条件是id相同,但a.event_date 比login大一天,这里用到datediff, 前面减后面就是差
3.最后使用round取两位
4.中间的是a.event_date的出现频率,可以用avg(a.event_date is not null)表示将存在envet_date的表示1,其余0

src:

# Write your MySQL query statement below
# is not null就是1,找到1的平均值,就是频率

select round(avg(a.event_date is not null), 2) fraction
# 先找出每个用户id+首次登陆的信息, 然后左连接找满足条件的, a.event_date不能是空
from (select player_id, min(event_date) as login_day
      from Activity
      group by player_id) t left join Activity a  
      # group by 保证只有一个player_id 作为主键
      # 不用group by只会输出一个min值
on t.player_id = a.player_id
and datediff(a.event_date, t.login_day) = 1

总结:
非常综合的一道题
考察了min,group,leftjoin,datediff,round,avg牛皮!



这篇关于leetcodeSQL: 游戏玩法分析 IV的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程