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

devtools/2024/9/24 17:08:34/

目录

题目

准备数据

分析数据

总结


题目

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

准备数据

## 创建库
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的首次登陆日期

select player_id, min(event_date) as login
from activity
group by player_id

 

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

select a.event_date fraction
from(select player_id, min(event_date) as loginfrom activitygroup by player_id) pleft join activity aon p.player_id=a.player_id and datediff(a.event_date, p.login)=1;

 

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

select round(avg(a.event_date is not null), 2) fraction
from(select player_id, min(event_date) as loginfrom activitygroup by player_id) pleft join activity aon p.player_id=a.player_id and datediff(a.event_date, p.login)=1;

总结

  • 计算首次日期或最小日期可以使用min()函数
  • 使用DATEDIFF()函数来计算两个日期之间的差值

http://www.ppmy.cn/devtools/94251.html

相关文章

MySQL基础练习题36-各赛事的用户注册率

目录 题目 准备数据 分析数据 题目 统计出各赛事的用户注册百分率,保留两位小数。 返回的结果表按 percentage 的 降序 排序,若相同则按 contest_id 的 升序 排序。 准备数据 ## 创建库 create database db; use db;## 创建Users表 Create table …

偏导数的可视化

偏导数的可视化 flyfish 函数 f ( x , y ) sin ⁡ ( x ) ⋅ cos ⁡ ( y ) f(x, y) \sin(x) \cdot \cos(y) f(x,y)sin(x)⋅cos(y) import numpy as np from sympy import lambdify, sin, cos from sympy.abc import x, y import matplotlib.pyplot as plt from mpl_toolk…

解决ONENOTE复制文字到外部为图片(Ditto)

默认情况下,在ONENOTE中记录的文字,在复制粘贴到外部时,会成为一张图片格式 如下图这段文字,粘贴到QQ中变为了图片 解决办法:安装Ditto Ditto下载链接 点击Download下载 双击安装.exe,选择安装路径后&…

2024.8.7(SQL语句)

一、回顾 1、主服务器 [rootslave-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# yum -y install rsync [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar [rootmaster-mysql ~]# ls [rootmaster-mysql ~]# tar -xf mysql-8.0.33-linux-glib…

Java如何使用 HTTP 请求下载图片

工具类: public FileInputStream fileDownload(String fileLink) throws Exception {System.out.println("开始下载"fileLink);// 转码中文URL url new URL(encodeURLChinese(fileLink));System.out.println("fileLink:"url);// 开始下载Trust…

三防平板满足多样化定制为工业领域打造硬件解决方案

在当今工业领域,数字化、智能化的发展趋势日益显著,对于高效、可靠且适应各种复杂环境的硬件设备需求不断增长。三防平板作为一种具有坚固耐用、防水防尘防摔特性的工业级设备,正以其出色的性能和多样化的定制能力,为不同行业的应…

云计算虚拟化Libvirt Domain XML Format中文版—对照学习使用

笔者在云计算工作中记录虚拟化Libvirt XML相关学习内容 说明资料源:部分术语及libvirt目标域XML格式(Domain XML Format)1. 元素和属性概述(Element and attribute overview)1.1 通用元数据(General metadata)1.2 操作系统启动(Operating system booting)1.2.1 BIOS…

江协科技STM32学习笔记

第01章 STM32简介及开发环境搭建 1.1 STM32简介 1.1.1 STM32F103C8T6 系列:主流系列STM32F1 内核:ARM Cortex-M3 主频:72MHz RAM:20K(SRAM) ROM:64K(Flash) 供电…