踏踏实实练SQLday1-1连续登录

踏踏实实练SQLday1

  • 1连续登录
    • 1.1查询连续登录3天以上的用户
      • 第一步去重
      • 第二步-开窗rownumber,用date减一下,对结果进行分组 -- over()
      • 开窗函数知识图谱
      • 第三步
    • 1.2查询连续登录最大天数用户
    • 1.3某个用户连续登录天数
      • 注意先where一下这个用户的数据过滤出来...之后步骤同第二步
      • 某个用户最大连续登录天数 max(date)
    • 1.4用户账户余额大于1000的连续天数
    • 1.5‘连续类’题目思路:rownumber() over() 减一下,在分组count
  • 2 lead/lag使用(股票波峰波谷)
  • 3 连续12345
  • 4 三种排序(开窗)第几名/前几名/topN
  • 5 天/月gmv汇总(聚合开窗)(一步步累计求和)
  • 6 互相关注(共同好友)
  • 7 炸裂函数
  • 8 每一门课大于60分的学生
  • 9 七日留存

1连续登录

1.1查询连续登录3天以上的用户

在这里插入图片描述
字段名相同不会覆盖 – select a,a,a – 结果有三列

第一步去重

select id,substr(date,1,10) as date 
from test 
group by id,substr(date,1,10)

substr(字段,i,j)截取多少位
在这里插入图片描述

第二步-开窗rownumber,用date减一下,对结果进行分组 – over()

select id,date,date_add(date,
-row_number() over(partition by id order by date)) as date1 
from 第一步子查询

overnumber开窗函数,用date减一下,对结果分组。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连续–想起123456789–想起用row_number

开窗函数知识图谱

over() 开窗函数
在这里插入图片描述
select普通字段和聚合函数不能一起使用

普通的聚合函数每组(Group by)只返回一个值,而开窗函数则可视为窗口中的每行都返回一个值。
对查询的结果多出一列,这一列可以是聚合值,也可以是排序值。
开窗函数一般就是over()函数,其窗口是由一个OVER子句定义的多行记录。

  • 聚合开窗函数
sum(score) over (partition by subject order by score) as sum3

sum(score) over (partition by subject 分区 order by score排序) as sum3

max/min

over(里) -- 分区排序 写在外面就必须写组函数,一组显示一行数据
分区排序,写在开窗函数内就可以每行数据都显示出来
  • 排序开窗函数–4种(3+1)
rank--1224
.--1223
rownumber--1234
百分比--

第三步

select id,date1,count(*) as day_cnt 
from 第二步子查询 
group by id ,date1 having count(*)>3

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

1.2查询连续登录最大天数用户

在这里插入图片描述

1.3某个用户连续登录天数

注意先where一下这个用户的数据过滤出来…之后步骤同第二步

某个用户最大连续登录天数 max(date)

1.4用户账户余额大于1000的连续天数

在这里插入图片描述

1.5‘连续类’题目思路:rownumber() over() 减一下,在分组count

2 lead/lag使用(股票波峰波谷)

波峰:当天的价格大于前一天和后一天
波谷:当天的价格小于前一天和后一天

select id,ds,price,case 
	when price>lag_price and price>lead_price then '波峰' 
	when price<lag_price and price<lead_price then '波谷' end as price_type
from(
	select id,ds,price,lag(price,1)over(partition by.id order by ds) as lag_price,
	lead(price,1)over(partition by.id order by ds) as lead_price
	from test
)t

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

3 连续12345

hive的连续开窗函数

4 三种排序(开窗)第几名/前几名/topN

5 天/月gmv汇总(聚合开窗)(一步步累计求和)

6 互相关注(共同好友)

7 炸裂函数

8 每一门课大于60分的学生

9 七日留存

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)

文章目录 引言I 安装NVM1.1 Windows系统安装NVM,实现Node.js多版本管理1.2 配置下载镜像1.3 NVM常用操作命令II NPM永久使用淘宝源安装 cnpm安装pnpm【推荐】see also: vscode常用插件引言 淘宝镜像:http://npm.taobao.org 和 http://registry.npm.taobao.org 已在 2022.06.3…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述03、维度表技术基础)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考&#xff0c;摘录一些书中关于维度建模比较重要的思想与大家分享&#x1f923;&#x1f923;&#x1f923; 第二章前言部分作者提到&#xff1a;技术的介绍应该通过涵盖各种行业的熟悉的用例展开&#xff08;赞同…

Postman接口测试02|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 五、Postman 1、安装 2、postman的界面介绍 六、Postman执行接口测试 1、请求页签 3、响应页签 七、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作 八、接口关联 1、第一种方式&#xff1a;Json提取器 2、第二种方…

Oracle 日常巡检

1. 检查服务器状态 1.1. CPU使用情况 1.1.1. top top 命令是 Linux 和 Unix 系统中用于显示实时系统状态的工具&#xff0c;特别是对于监控 CPU 和内存的使用非常有用。 在命令行中输入 top&#xff0c;top 会显示一个实时更新的界面&#xff0c;其中包含系统的关键指标&am…

计算机组成原理的学习笔记(8)-- 指令系统·其一 指令的组成以及数据寻址方式

学习笔记 前言 ​ 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记&#xff0c;仅用于学习交流。 1. 指令 1.1 组成 操作码&#xff08;Opcode&#xff09;&#xff1a;指指令中执行特定操作的部分。地址码&#xff1a;指令中用于指定操作数位置的部分。 1.2 扩展操作…

JavaScript 标准内置对象——Array

1、构造函数 2、静态方法 // 从可迭代或类数组对象创建一个新的浅拷贝的数组实例 // arrayLike 想要转换成数组的类数组或可迭代对象 Array.from(arrayLike, mapFn, thisArg) Array.fromAsync(arrayLike, mapFn, thisArg) // 异步Array.isArray(value) // 判断传递的值是否是一…

IndexOf Apache Web For Liunx索引服务器部署及应用

Apache HTTP Server 是一款广泛使用的开源网页服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等 IndexOf 功能通常指的是在一个目录中自动生成一个索引页面的能力,这个页面会列出该目录下所有的文件和子目录。比如网上经常看到的下图展现的效果,那么接下来我们就讲一下…

【PSINS】EKF、UKF、CKF三个滤波下的组合导航(松组合)对比

该 MATLAB 代码实现了扩展卡尔曼滤波&#xff08;EKF&#xff09;、无迹卡尔曼滤波&#xff08;UKF&#xff09;和无迹卡尔曼滤波的变体&#xff08;CKF&#xff09;的对比&#xff0c;主要用于导航与定位领域&#xff0c;通过处理惯性测量单元&#xff08;IMU&#xff09;和GP…

PPT画图——如何设置导致图片为600dpi

winr&#xff0c;输入regedit打开注册表 按路径找&#xff0c;HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options&#xff08;xx为版本号&#xff0c;16.0 or 15.0或则其他&#xff09;。名称命名&#xff1a;ExportBitmapResolution 保存即可&#xff0c;…

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式&#xff1a; vim 文件名 •如果文件存在&#xff0c;进入编辑状态对其进行编辑 •如果文件不存在&#xff0c;创建文件并进入编辑状态 例&#xff1a; [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式&#xff1a; 命令模式&a…

Gmsh有限元网格剖分(Python)---点、直线、平面的移动

Gmsh有限元网格剖分(Python)—点、直线、平面的移动和旋转 最近在学习有限元的网格剖分算法&#xff0c;主要还是要参考老外的开源Gmsh库进行&#xff0c;写一些博客记录下学习过程&#xff0c;方便以后回忆嘞。 Gmsh的官方英文文档可以参考&#xff1a;gmsh.pdf 但咋就说&a…

【Linux】基础I/O -> 如何谈文件与文件系统?

文件的基础理解 空文件也要在磁盘上占据空间。文件 文件内容文件属性。文件操作 对内容的操作 对属性的操作或者是对内容和属性的操作。标定一个文件&#xff0c;必须使用&#xff1a;文件路径 文件名&#xff08;具有唯一性&#xff09;。如果没有指明对应的文件路径&…

python+reportlab创建PDF文件

目录 字体导入 画布写入 创建画布对象 写入文本内容 写入图片内容 新增页 画线 表格 保存 模板写入 创建模板对象 段落及样式 表格及样式 画框 图片 页眉页脚 添加图形 构建pdf文件 reportlab库支持创建包含文本、图像、图形和表格的复杂PDF文档。 安装&…

软件项目需求分析的实践探索(1)

一、项目启动与规划 组建团队 包括项目经理、系统分析师、业务分析师以及可能涉及的最终用户代表和领域专家等。例如&#xff0c;开发一个医疗管理软件&#xff0c;就需要有医疗行业的专家参与&#xff0c;确保对医疗业务流程有深入理解。明确各成员的职责&#xff0c;如系统分…

Windows下ESP32-IDF开发环境搭建

Windows下ESP32-IDF开发环境搭建 文章目录 Windows下ESP32-IDF开发环境搭建一、软件安装二、搭建IDF开发环境2.1 安装VS Code插件&#xff1a;2.2 配置ESP-IDF插件&#xff1a;2.3 下载例程源码&#xff1a; 三、编译和烧录代码四、Windows下使用命令行编译和烧录程序4.1 配置环…

从 GitLab.com 到 JihuLab.com 的迁移指南

本文分享从 GitLab.com 到 JihuLab.com 的迁移指南。 近期&#xff0c;GitLab Inc. 针对其 SaaS 产品做了限制&#xff0c;如果被判定为国内用户&#xff0c;则会建议使用其在国内的发布版本极狐GitLab。从 GitLab SaaS 产品&#xff08;GitLab.com&#xff09;迁移到极狐GitL…

Mysql-索引的数据结构

为什么要使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构&#xff0c;就好比一本教科书的目录部分&#xff0c;通过目录中找到对应文章的页码&#xff0c;便可快速定位到需要的文章。MySQL中也是一样的道理&#xff0c;进行数据查找时&#xff0c;首先查看查询条件…

ReactPress 1.6.0:重塑博客体验,引领内容创新

ReactPress 是一个基于Next.js的博客&CMS系统&#xff0c; Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 体验地址&#xff1a;http://blog.gaoredu.com/ 今天&#xff0c;我们自豪地宣布ReactPress 1.6.0版本的正式发布&#xff0c;…

秒鲨后端之MyBatis【1】环境的搭建和核心配置文件详解

​ 别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! Mybatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下&#xff…

【Go】Go数据类型详解—map

1. 前言 本篇博客将会介绍Go语言当中的另一大核心数据类型——map&#xff08;映射&#xff09;&#xff0c;当然在介绍这个数据类型之前我们还是要思考引入这个数据类型的原因&#xff1a; ❓ 需求&#xff1a;要求完成对一个班级所有同学的信息管理&#xff08;包括但不限于…