每日一SQL 【游戏玩法分析 IV】

文章目录

问题

案例

执行顺序

SQL 语句的执行顺序(核心步骤)

同一层级的select查询内部, 别名在整个 SELECT 计算完成前不生效

使用分组解决

第一步

sql 复制代码
select  temp.*, a.event_date as second_date from
(select player_id, min(event_date) as first_date from Activity group by player_id) temp
left join Activity a on temp.player_id = a.player_id and date_add(temp.first_date, interval 1 day) = a.event_date;

解释

count(a.event_date):count关键字计算非空字段数量, count(*)计算全部数量.

1.先计算每个玩家的首次登陆日

2.再计算每个玩家的第二天登陆日, second_date不为null即表示该玩家符合条件

3.符合条件的玩家用count(second_date)控制, 全部玩家用count(*)控制, round(count(second_date) / count(*), 2) 计算完成.

第二步

sql 复制代码
select round(count(a.event_date) / count(*),2) as fraction from
(select player_id, min(event_date) as first_date from Activity group by player_id) temp
left join Activity a on temp.player_id = a.player_id and date_add(temp.first_date, interval 1 day) = a.event_date;
相关推荐
2301_813599553 分钟前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python
m0_377618236 分钟前
c++怎么在不加载整个大文件的情况下获取其SHA256校验值【进阶】
jvm·数据库·python
檬柠wan11 分钟前
MySQL-数据库增删改查学习
数据库·学习·mysql
qq_1898070312 分钟前
CSS如何实现纯CSS树状目录结构_利用-checked与递归思维构建交互节点
jvm·数据库·python
2301_7775993732 分钟前
Go语言如何做HTTP连接池_Go语言HTTP连接池教程【最新】
jvm·数据库·python
Wy_编程33 分钟前
Redis数据类型和常用命令
数据库·redis·缓存
张老师带你学44 分钟前
unity 老版本资源迁移,第一人称,完整城市,有出身点房内视图,有gun shop视图,urp
科技·游戏·unity·模型·游戏美术
坐吃山猪1 小时前
Python27_协程游戏理解
开发语言·python·游戏
Polar__Star1 小时前
Redis如何利用位图快速判断数据存在性
jvm·数据库·python
2301_817672261 小时前
CSS如何实现优雅的间距_使用CSS Grid控制盒模型间隙
jvm·数据库·python