MySQL基础练习题34-游戏玩法分析4

目录

题目

准备数据

分析数据

总结


题目

报告在首次登录的第二天再次登录的玩家的 比率四舍五入到小数点后两位。换句话说,你需要计算从首次登录日期开始至少连续两天登录的玩家的数量,然后除以玩家总数。

准备数据

sql 复制代码
## 创建库
create database db;
use db;

## 创建表
Create table If Not Exists Activity (player_id int, device_id int, event_date date, games_played int)

## 向表中插入数据
Truncate table Activity
insert into Activity (player_id, device_id, event_date, games_played) values ('1', '2', '2016-03-01', '5')
insert into Activity (player_id, device_id, event_date, games_played) values ('1', '2', '2016-03-02', '6')
insert into Activity (player_id, device_id, event_date, games_played) values ('2', '3', '2017-06-25', '1')
insert into Activity (player_id, device_id, event_date, games_played) values ('3', '1', '2016-03-02', '0')
insert into Activity (player_id, device_id, event_date, games_played) values ('3', '4', '2018-07-03', '5')

activity表

分析数据

只有 ID 为 1 的玩家在第一天登录后才重新登录,所以答案是 1/3 = 0.33

第一步:选出每个用户id的首次登陆日期

sql 复制代码
select player_id, min(event_date) as login
from activity
group by player_id

第二步:添加连续两次登录的条件

sql 复制代码
select a.event_date fraction
from
    (select player_id, min(event_date) as login
     from activity
     group by player_id) p
        left join activity a
                  on p.player_id=a.player_id and datediff(a.event_date, p.login)=1;

第三步:算出 首次登录的第二天再次登录的玩家的 比率,并四舍五入

sql 复制代码
select round(avg(a.event_date is not null), 2) fraction
from
    (select player_id, min(event_date) as login
     from activity
     group by player_id) p
        left join activity a
 on p.player_id=a.player_id and datediff(a.event_date, p.login)=1;

总结

  • 计算首次日期或最小日期可以使用min()函数
  • 使用DATEDIFF()函数来计算两个日期之间的差值
相关推荐
今夕资源网5 小时前
.sav游戏存档在线编辑器 .sav文件存档转json文件 html源码
游戏·游戏存档编辑器·sav游戏存档在线编辑器·游戏存档在线编辑器·sav游戏存档在线编辑·sav游戏存档编辑·游戏存档修改
我无止境9 小时前
和平精英模拟器进入对局卡成PPT怎么办?(可能解决黑屏问题)
游戏
烧冻鸡翅QAQ11 小时前
从0开始的游戏编程——Cocos Creator开发
游戏
熊猫钓鱼>_>15 小时前
解决Web游戏Canvas内容在服务器部署时的显示问题
服务器·前端·游戏·canvas·cors·静态部署·资源路径
喵了几个咪16 小时前
Go单协程事件调度器:游戏后端的无锁有序与响应时间掌控
开发语言·游戏·golang
谈笑也风生1 天前
经典算法题型之扫雷游戏(二)
c语言·游戏
技术小甜甜1 天前
【Godot】【入门】GDScript 快速上手(只讲游戏里最常用的 20% 语法)
android·游戏·编辑器·游戏引擎·godot
赏天上月2 天前
夸克在线解析_夸克快速下载
游戏
uuleaf2 天前
12款键盘练习打字小游戏:键盘练习游戏合集
游戏·计算机外设·编程打字
程序猿阿伟2 天前
《游戏存档跨维延续:版本兼容与向前适配的实战手册》
游戏