【SQL】550. 游戏玩法分析 IV (关键点:确定连续两次登录)

前述

常见函数用法示例:

  • DATEDIFF(col1, col2) = 1
  • DATE_ADD(MIN(col), INTERVAL 1 DAY)
  • ROUND(3.1415926,3) ==> 四舍五入得到 3.142

题目描述

leetcode原题:550. 游戏玩法分析 IV

在这里插入图片描述
在这里插入图片描述

思路

  1. 确定连续两次登录
  2. 统计,保留两位小数

写法一

关键点:如何确定连续两次登录?

  • 增加一列(命名为supposed_sec_load):event_date的时间上增加一天,查找是否event_date和supposed_sec_load有相同日期的
select ROUND(COUNT(DISTINCT(B.player_id))/COUNT(DISTINCT(A.player_id)), 2) as fraction
from Activity A 
left join (select player_id, DATE_ADD(MIN(event_date), INTERVAL 1 DAY) as supposed_sec_loadfrom Activitygroup by player_id
) B
on B.player_id = A.player_id and B.supposed_sec_load = A.event_date

代码过程解析:

在这里插入图片描述
加上and B.supposed_sec_load = A.event_date 进行条件过滤

在这里插入图片描述
最后再统计一下就可以了。

写法二

select IFNULL(ROUND(COUNT(DISTINCT(C.player_id))/COUNT(DISTINCT(Activity.player_id)), 2), 0) as fraction
from (select A.player_idfrom Activity Ajoin (select player_id, DATE_ADD(MIN(event_date), INTERVAL 1 DAY) AS sec_loadfrom Activitygroup by player_id) Bon A.player_id = B.player_id and A.event_date = B.sec_load
) C, Activity

写法三

-- select ROUND(AVG(B.event_date IS NOT NULL), 2) AS fraction
select ROUND(sum(if(B.event_date, 1, 0))/count(*), 2) AS fraction
from (select player_id, MIN(event_date) AS first_loadfrom Activitygroup by player_id
) A
left join Activity B 
on A.player_id =B.player_id and datediff(B.event_date, A.first_load) = 1

附录:记录自己有时候的白痴错误。

--  聚集函数,分组过滤完之后的,用having;  where 是在分组之前进行过滤的。似不似傻?!
-- select *
-- from Activity
-- group by player_id
-- having datediff(event_date, '2016-03-01') = 1

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言,大宗撮合交易中心系统核心模块代码

撮合交易系统(Matching System)常用于大宗交易,如股票、期货等市场,它负责根据买卖双方的报价和数量,自动撮合成交。撮合系统的核心模块通常包括订单管理、价格计算和撮合逻辑等部分。 由于撮合系统的实现复杂且依赖于…

分享MDN前端结构化技能、实践指南、学习资源

前言 MDN课程为成为一名成功的前端开发人员提供了一个结构化的基本技能和实践指南,以及推荐的学习资源。 先看下让人不得不服的书《宝宝的网页设计》(套装共3册) 宝宝的HTML、宝宝的CSS、宝宝的JavaScript 全球首套中英文宝宝编程启蒙书&a…

魔众智能AI系统v2.1.0版本支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini)

支持主流大模型(讯飞星火、文心一言、通义千问、腾讯混元、Azure、MiniMax、Gemini) [新功能] 系统全局消息提示 UI 全新优化 [新功能] JS 库增加【ijs】类型字符串,支持默认可执行代码 [新功能] 分类快捷操作工具类 CategoryUtil [新功能…

【Flink】Apache Flink 常见问题定位指南

Apache Flink 常见问题定位指南 1.问题分析概览1.1 如何分析 Flink 问题 2.常见问题处理2.1 作业自动停止2.2 输出量稳定但不及预期2.3 输出量逐步减少或完全无输出2.4 个别数据缺失2.5 作业频繁重启 3.问题追因技巧3.1 常用工具3.1.1 内存3.1.2 CPU3.1.3 磁盘 I/O3.1.4 网络 I…

AI绘画提示词案例(宠物

目录 1. 雪地猫猫:1.1 提示词:1.2 效果: 2. 趴地猫猫:2.1 提示词:2.2 效果: 3. 长城萨摩耶:3.1 提示词:3.2 效果: 4. 沙发猫猫:4.1 提示词:4.2 效…

linux 交叉编译curl(+openssl)

一、交叉编译openssl 参考博客:点击跳转 二、交叉编译curl 1、源码下载 地址:点击跳转 2、配置 CPPFLAGS"-I/home/gui/gui/openssl/build_arm/include" LDFLAGS"-L/home/gui/gui/openssl/build_arm/lib" LIBS"-ldl" \ …

考研复试要想顺利通关,务必掌握的一些问题

亲爱的学弟学妹们,大家好! 我是研一的学姐,深知考研路上的艰辛与不易。如今,为了回馈广大考研学子,我决定将自己精心整理的考研复试资料拿出来与大家分享,希望能为你们的复试之路添砖加瓦,助你…

指针的学习5

目录 sizeof和strlen的区别 sizeof strlen 数组和指针笔试题解析 一维数组 字符数组 二维数组 指针运算笔试题解析 题目1: 题目2: 题目3: 题目4: 题目5: 题目6: 题目7: sizeof和…

【C++ 学习】拷贝构造你了解多少?

文章目录 1. 拷贝构造的引入2. 拷贝构造的引用场景 1. 拷贝构造的引入 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用; 特征: ① …

Mysql安装好后my.ini文件在何处

文章目录 报错 Invalid default value for ‘‘begin_time‘‘my.ini文件何在 背景:导入一个sql脚本时执行报错,需要修改my.ini中的一个配置 报错 Invalid default value for ‘‘begin_time‘‘ 需要修改my.ini中的slq-mode配置 参考的这个哥们博客配…

wordpress免费主题下载

免费wordpress模板下载 简洁大气的文化艺术类wordpress模板,可以免费下载,实用易上手,新手也适合。 https://www.wpniu.com/themes/304.html 免费wordpress主题下载 高端大气上档次的wordpress主题,也可以是免费的,…

想做抖店但没货源也不知道卖什么,怎么入局?小白入门教程分享!

我是王路飞。 作为现在流量最大、机会最多的平台,入局抖音已经不是要不要的事情了,而是不得不去做。 尤其对普通人来说,没有任何优势的情况下,短视频、直播带货、网红等等都太遥远了,其中最适合也最容易拿到结果的&a…