力扣SQL刷题10
目录标题
- 618. 学生地理信息报告--完全不会的新题型
- 1097. 游戏玩法分析 V - 重难点
- 1127. 用户购买平台--难且不会
618. 学生地理信息报告–完全不会的新题型


max()函数的功效:(‘jack’, null, null)中得出‘jack’,(null,null)中得出null。 min()函数也可以。
窗口 先打标签再group by再case when:
select
max(case when continent = 'America' then name else null end) as America,
max(case when continent = 'Asia' then name else null end)as Asia,
max(case when continent = 'Europe' then name else null end) as Europe
from
(select *, row_number() over(partition by continent order by name) rk
from student) t
group by rk
1097. 游戏玩法分析 V - 重难点
题型:读题

解答:
看的评论区大佬的解答
由题目可知,需要计算以下几个值:
- 每个玩家第一个登录日
- 第一个登陆日之后有没有登录
- 第一个登录日的玩家的数量,第一个登录日的第二天登录玩家的数量
方法1:建临时表后,再和原表左联,通过datediff(activity.event_date, t1.first_date) = 1限制次日登录
- 每个玩家第一个登录日,作为 t1 表
select player_id,min(event_date) as first_date
from activity group by player_id;
- 将 t1 表和 activity 左连
select * from t1
left join activity
on t1.player_id = activity.player_id
and datediff(activity.event_date, t1.first_date) = 1;
datediff(大日期,小日期) --日期之差
- 左联之后的表,再按照第一个登陆日进行分组
完整:
with t as
(select player_id,min(event_date) as first_date
from Activity
group by player_id)select t.first_date install_dt,count(t.player_id) installs,
round(count(a.event_date)/count(t.first_date),2) day1_retention
from t
left join Activity a on t.player_id = a.player_idand datediff(a.event_date, t.first_date) = 1
group by t.first_date
方法2:使用了窗口函数代替了分组。
- 使用窗口函数建临时表
select player_id,event_date,min(event_date) over(partition by player_id) as first_date
from activity;
t1表:

- 查询 t1 ,按照 first_date 进行分组
with t1 as(select player_id,event_date,min(event_date) over(partition by player_id) as first_datefrom activity
)selectfirst_date as install_dt,count(distinct player_id) as installs,round(sum(if(date_add(first_date, interval 1 day) = event_date, 1, 0)) / count(distinct player_id),2) as day1_retention
from t1 group by first_date;
date_add(first_date, interval 1 day) = event_date
1127. 用户购买平台–难且不会


评论区大佬的思路:
- 统计每天不同平台的消费额,类似于其他的购物指标消费额一般都是以用户和时间作为分组
这道题的分组是按用户和时间天为分组条件
group by user_id,spend_date - if(count(distinct platform)=2,‘both’,platform)
- 第二步构造列中如果当日没有同时使用’mobile’和’desktop’购买的用户,就无法输出’both’字段
因此我们需要构造出一个固定输出三个字段 ‘both’ ‘desktop’ ‘mobile’ 的列
(
select 'desktop' as platform union
select 'mobile' as platform union
select 'both' as platform
) b
完整:
select spend_date,b.platform,
sum(if(a.platform=b.platform,amount,0)) as total_amount,
count(if(a.platform=b.platform,1,null)) as total_users
from(select spend_date,user_id,if(count(distinct platform)=2,'both',platform) as platform,sum(amount) as amountfrom spendinggroup by user_id,spend_date
) a,(select 'desktop' as platform unionselect 'mobile' as platform unionselect 'both' as platform
) b
group by spend_date,platform
相关文章:
力扣SQL刷题10
目录标题618. 学生地理信息报告--完全不会的新题型1097. 游戏玩法分析 V - 重难点1127. 用户购买平台--难且不会618. 学生地理信息报告–完全不会的新题型 max()函数的功效:(‘jack’, null, null)中得出‘jack’,(nul…...
31 岁生日快乐,Linux!
Linux 迎来了 31 岁生日,所以和我一起庆祝 Linux 的 31 岁生日吧,喝上一杯好香槟和一个美味的蛋糕!虽然有些人不承认 8 月 25 日是 Linux 的生日,但我知道。1991 年 8 月 25 日,21 岁的芬兰学生 Linus Benedict Torval…...
分布式ID生成方案
文章目录前言一、分布式ID需要满足的条件二、分布式ID生成方式基于UUID数据库自增数据库集群数据库号段模式redis ID生成基于雪花算法(Snowflake)模式百度(uid-generator)美团(Leaf)滴滴(Tinyid…...
合宙Air103|fbd数据库| fskv - 替代fdb库|LuatOS-SOC接口|官方demo|学习(16):类redis的fbd数据库及fskv库
基础资料 基于Air103开发板:🚗 Air103 - LuatOS 文档 上手:开发上手 - LuatOS 文档 探讨重点 对官方社区库接口类redis的fbd数据库及fskv库的调用及示例进行复现及分析,了解两库的基本原理及操作方法。 软件及工具版本 Luat…...
【论文精读】Deep Residual Learning for Image Recognition
1 Degradation Problem💦 深度卷积神经网络在图像分类方面取得了一系列突破。深度网络自然地将低/中/高级特征和分类器以端到端的多层方式集成在一起,特征的“层次”可以通过堆叠层数(深度)来丰富。最近的研究揭示了网络深度是至关重要的,在具…...
Lesson2:基础语法、输出输入
一、基础语法 1、行结构 一个Python程序可分为许多逻辑行,一般来说:一个语句就是一行代码,不会跨越多行。 """比如下面的Python程序,一共有3个逻辑行,每一行都通过print()输出一个结果。""…...
android 9.0去掉前置摄像头闪光灯功能
1.1概述 在9.0的系统rom定制化开发中,在系统中camera2也是非常重要的一部分功能,在很多场合会用到camera2拍照视频,等等功能, 但是在使用过程中发现系统camera2在使用的时候,在前置摄像头进行拍照的时候,会出现闪光灯的情况,对于产品来说,者就是一个大问题,所以产品要求…...
静态分析工具Cppcheck在Windows上的使用
之前在https://blog.csdn.net/fengbingchun/article/details/8887843 介绍过Cppcheck,那时还是1.x版本,现在已到2.x版本,这里再总结下。 Cppcheck是一个用于C/C代码的静态分析工具,源码地址为https://github.com/danmar/cppcheck …...
用一年时间脱胎换骨
生活习惯篇早睡早起11点30之前必须睡觉按时吃饭特别是早餐控糖,少吃甜食早起刷牙后,喝一杯温水保持身材,养成运动健身的习惯养成持续写作的习惯记录选题,金句,素材断舍离,定期整理,把不用的东西…...
全景拼接python旗舰版
前言在这个项目中,您将构建一个管道,将几幅图像拼接成一个全景图。您还将捕获一组您自己的图像来报告最终的结果。步骤1 特征检测与描述本项目的第一步是对序列中的每幅图像分别进行特征检测。回想一下我们在这个类中介绍过的一些特征探测器:…...
(C语言)常见的字符串与内存操作函数
问:1. Solve the problems:我想用三种方法求字符串的长度怎么办?2. strlen处理的字符串中有什么时需要注意:什么只记为什么?当什么不起什么作用时,什么不计算在内,编译器会把什么,什…...
Linux基础笔记总结
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
R语言学习笔记
1.R语言介绍 2.R语言安装 官网:https://www.r-project.org/ CARN → 选择China中任意镜像站点 → Download R for Windows → base(二进制版本R基础软件)→ Download R-4.2.2 for Windows (76 megabytes, 64 bit) 3.Rstudio安装 https://po…...
【软件测试】企业测试面试题9道,从自我介绍到项目考察+回答......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 1、自我介绍 您好&a…...
《Spring源码深度分析》第8章 数据库连接JDBC
目录标题前言一、数据库连接方式1.JDBC连接数据库2.Spring Jdbc连接数据库(JdbcTemplate)二、JdbcTemplate源码分析1.update/save功能的实现源码分析入口(关键)基础方法execute1.获取数据库连接池2.应用用户设定的输入参数3. 调用回调函数处理4. 资源释放Update中的回调函数2.q…...
ModuleNotFoundError的解决方案【已解决】
问题描述 有包却提示ModuleNotFoundError 在正常情况下,你使用pip或者conda检查是否有相应包的时候,显示的是有的。但是一旦运行程序就会报这个ModuleNotFoundError错误。 问题可能是程序运行环境不对。 解决方案 (1)进入正确…...
Vue驼峰与短横线分割命名中有哪些坑
目录 0.前言 驼峰和短横线分割命名注意事项 组件注册命名 父子组件数据传递时命名 父子组件函数传递 0.前言 Vue驼峰命名法指的是将变量以驼峰形式命名,例如 userName、userId 等,而短横线分隔符法则指的是用短横线分隔变量名,例如 user…...
从文件中加载数据以及异常处理
上期学习了数据的存储,这次学习数据的加载 你可以使用把openpyxl.load_workbook() 来打开一个已经存在的工作簿 >>> from openpyxl import load_workbook >>> wb load_workbook(filename empty_book.xlsx) >>> sheet_ranges wb[ran…...
【JavaSE】方法的使用
方法的使用BIT-5-方法的使用绪论1. 方法概念及使用1.1什么是方法1.2 方法定义1.3 实参和形参的关系(重要)1.4 没有返回值的方法2. 方法重载2.1 为什么需要方法重载2.2 方法重载概念3. 递归3.1 生活中的故事3.2 递归的概念3.2 递归执行过程分析3.3 递归练…...
ModelScope 垂类检测系列模型介绍
文章目录ModelScope介绍垂类模型介绍调用方式1 Demo Service2 Notebook3 本地使用* 二次开发总结ModelScope介绍 ModelScope 是阿里达摩院推出的 中文版模型即服务(MaaS, Model as a Service)共享平台。该平台在2022年的云栖大会上发布,之前…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
