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

news2024/11/15 2:09:09

目录

题目

准备数据

分析数据

总结


题目

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

准备数据

## 创建库
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 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;

 

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

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()函数来计算两个日期之间的差值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么要学医疗器械维修?

在当今高速发展的医疗领域,医疗器械维修已成为一个极具吸引力和潜力的职业选择。那么,为什么要学习医疗器械维修呢? 一、稳定且持续增长的需求 随着医疗技术的不断进步,医疗器械的种类和数量日益增多。从常见的 X 光机、CT 扫描仪…

新专利:温室土壤温湿度预测模型构建方法和程序产品

( 于景鑫 国家农业信息化工程技术研究中心)在现代设施农业生产中,温室微环境的精准调控是提高作物产量和品质的关键。然而,由于温室内外环境因素的复杂多变,尤其是土壤温湿度的非线性、非平稳特性,传统的预…

【vue3|第23期】Vite + Vue3: 深入理解public和assets文件夹的作用与使用

日期:2024年8月14日 作者:Commas 签名:(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方&#xf…

如果让你消息队列,该如何设计?说一下你的思路

在当今的分布式系统中,消息队列是一个不可或缺的组件,它在系统解耦、流量削峰、异步处理等方面发挥着重要作用。 如果我要设计一个消息队列,我会从以下几个关键点出发呢? 让我们来探讨一下如何设计一个消息队列的架构。 实现内存…

【MySQL】数据库初识

文章目录 前言一、MySQL的基本结构二、MySQL的组成三、数据库的简单使用数据库操作数据类型认知数值类型字符串类型日期类型 数据库表操作 总结 前言 数据库是一类软件,有MySQL、Oracle、SQL Server、Redis等作为代表,通过数据库能够对数据进行管理和组…

六大热门及两个趋冷的网络安全趋势

AI不仅在改变威胁环境,还在改变安全团队保护其组织的方式,然而,AI并不是网络安全专业人士应该关注的唯一趋势。 在网络安全领域,与其他领域一样,AI和GenAI都是人们关注的焦点,恶意行为者正在利用AI和GenAI创造更具隐蔽性的恶意软件、更具说服力的钓鱼邮件以及更逼真的深…

DevExpress开发WPF应用实现对话框总结:编织界面的艺术之旅

在软件开发的浩瀚星空中,WPF(Windows Presentation Foundation)以其卓越的界面表现力和丰富的控件库,成为了众多开发者心中的璀璨明珠。而DevExpress,作为WPF领域的佼佼者,更是以其强大的组件库和易于集成的…

大模型时代来临:程序员如何自处,产品经理如何迎接新挑战

一名失业中的程序员,因为一次大胆的求职之举登上了微博热搜。 向瑶函花费999元,在广州地铁珠江新城站购买了一个广告位5天的使用权,用来投放自己的简历二维码,扫码就可以了解这名程序员“飘零的前半生”。 向瑶函是在2023年5月“…

灵巧守门员——代理模式(Java实现)

代理模式不仅在控制对象访问上展现了其独特的优势,还在功能扩展和系统安全性上起到了重要作用。上期我们介绍了代理模式在Python中的实现,今天,我们将继续探讨代理模式,并展示如何在Java中实现它。 什么是代理模式? …

How do you implement OpenAI GPT-3 Api Client in PHP?

题意:如何在 PHP 中实现 OpenAI GPT-3 API 客户端? 问题背景: I need help understanding the vague instructions on https://packagist.org/packages/orhanerday/open-ai 我需要帮助来理解这些模糊的说明... I downloaded the package fr…

PDF转图片新潮流,4款神器告别手动截图

在这个信息爆炸的时代,PDF文件因为能在各种设备上保持格式不变,成了我们学习和工作中的好帮手。今天,我就诚心诚意地给你推荐几款现在特别流行的PDF转图片工具。这些工具操作起来非常简单,转换速度快,而且转换出来的图…

前端工程化工具——plop的使用-生成模板页面

背景 软件列表 软件名称版本号备注vue3.2.13vue-cli5.0.8plop4.0.1 操作步骤 新建vue3工程 vue create test-plop按提示完成操作即可 modules安装工具选择&#xff1a;yarn或npm均可 安装plop模块 yarn add plop -g新建模板文件 page1/index.hbs <template><…

【启动centos报错】另一个程序已锁定文件的一部分,进程无法访问,打不开磁盘.

启动centos报错 另一个程序已锁定文件的一部分&#xff0c;进程无法访问打不开磁盘“D:\Program2\CentOS\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。解决方法 删除.lck文件

基于InP的通用光子集成技术(四)

7.ASPIC设计环境 在光子学中引入通用晶圆方法将导致光子芯片复杂度的重大变化&#xff1a;它将把设计从器件级转移到光路级&#xff0c;这一转变发生在20世纪70年代和80年代的微电子中&#xff0c;现在也发生在PIC中。 在通用方法中&#xff0c;可以通过具有许多构建块的PDK访…

数学建模笔记(2):Topsis分析法

一.评价类问题的几个关键词 1.指标 评价一个方案或者对象我们需要有评价指标&#xff0c;即从哪几个方面进行评价。比如评价一个人在保研上的竞争力&#xff0c;我们可以从绩点&#xff0c;课外竞赛&#xff0c;科研成果&#xff0c;学生工作&#xff0c;志愿服务等几个方面来…

Qt QTabWidget之创建标签页的多页面切换

QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…

游标卡尺的使用

游标卡尺的使用注意事项 游标卡尺是比较精密的测量工具&#xff0c;使用时应轻拿轻放&#xff0c;不得碰撞或跌落地下。使用时不要用来测量粗糙的物体&#xff0c;以免损坏量爪。不用时应置于干燥地方防止锈蚀。测量工件时&#xff0c;卡脚测量面必须与工件的表面平行或垂直&a…

1915_开源C语言实现的通用队列

经常在工作中遇到一些队列处理的场景&#xff0c;以前要么是借用FreeRTOS这样的系统中的相关功能&#xff0c;要么是通过数组做一个简单的队列模型。但是&#xff0c;这两种方案都具有一定的局限性能&#xff0c;前者要求的FreeRTOS不见得相应的软件中有&#xff0c;而后者只能…

【C++】什么是模板?

有不懂的地方可以翻阅我之前文章&#xff01; 个人主页&#xff1a;CSDN_小八哥向前冲 所属专栏&#xff1a;CSDN_C入门 目录 模板函数 泛型编程 函数模板 类模板 模板函数 泛型编程 在之前的学习里&#xff0c;我们知道函数可以重载&#xff0c;当我们在实现多参数函数交…

【2.2】回溯算法-解含有重复数字的全排列 II

一、题目 给定一个可包含 重复数字 的序列nums&#xff0c;按任意顺序返回所有不重复的全排列。 二、求解思路及代码实现 回溯算法思路&#xff1a; 这道题目与之前讨论的全排列问题类似&#xff0c;但有一个关键的区别&#xff1a;本题中数组包含重复的数字&#xff0c;而之前…