SQL统计次月复购率

2023-11-15

 

-- 复购率
select zry 首次购买月份,zyhs 当月新增客户数,
max(case when fgy-zry=1 then fgyhs else null end) m1,
max(case when fgy-zry=2 then fgyhs else null end) m2,
max(case when fgy-zry=3 then fgyhs else null end) m3,
max(case when fgy-zry=4 then fgyhs else null end) m4,
max(case when fgy-zry=5 then fgyhs else null end) m5,
max(case when fgy-zry=6 then fgyhs else null end) m6,
max(case when fgy-zry=7 then fgyhs else null end) m7
from
(select zry,fgy,fgyhs,zyhs,round(fgyhs/zyhs,2) fgl
from 
(select t1.dt zry,t2.dt fgy,count(distinct t2.user_id) fgyhs 
from (select month(order_date) dt,user_id from order_detail where order_status='交易成功' group by month(order_date),user_id) t1 
join (select month(order_date) dt,user_id from order_detail where order_status='交易成功' group by month(order_date),user_id) t2 
on t1.user_id=t2.user_id and t1.dt < t2.dt 
group by t1.dt,t2.dt) a -- 号码加小于本身时间连接
join 
(select month(order_date) yf,count(distinct user_id) zyhs
from order_detail 
group by month(order_date)) b 
on a.zry=b.yf) a  group by zry,zyhs;

-- 复购人数
select zry 首次购买月份,zyhs 当月新增客户数,
max(case when fgy-zry=1 then fgl else null end) m1,
max(case when fgy-zry=2 then fgl else null end) m2,
max(case when fgy-zry=3 then fgl else null end) m3,
max(case when fgy-zry=4 then fgl else null end) m4,
max(case when fgy-zry=5 then fgl else null end) m5,
max(case when fgy-zry=6 then fgl else null end) m6,
max(case when fgy-zry=7 then fgl else null end) m7
from
(select zry,fgy,fgyhs,zyhs,round(fgyhs/zyhs,2) fgl
from 
(select t1.dt zry,t2.dt fgy,count(distinct t2.user_id) fgyhs 
from (select month(order_date) dt,user_id from order_detail where order_status='交易成功' group by month(order_date),user_id) t1 
join (select month(order_date) dt,user_id from order_detail where order_status='交易成功' group by month(order_date),user_id) t2 
on t1.user_id=t2.user_id and t1.dt < t2.dt 
group by t1.dt,t2.dt) a 
join 
(select month(order_date) yf,count(distinct user_id) zyhs
from order_detail 
group by month(order_date)) b 
on a.zry=b.yf) a  group by zry,zyhs;

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL统计次月复购率 的相关文章

  • 在 ms-sql 中查找最近的位置

    我将这些参数发送给我的脚本 纬度 41 0186 经度 28 964701 它是示例 我想找到最近的位置的名称 这个怎么做 查询必须更改代码的位置 sql查询 SELECT Name FROM Location WHERE Latitude
  • 如何在 Java 中复制对象?

    考虑下面的代码 DummyBean dum new DummyBean dum setDummy foo System out println dum getDummy prints foo DummyBean dumtwo dum Sys
  • Java:Swing:设置JButton的位置

    我想实现以下布局 OK
  • 如何确定 JDialog 显示在哪个屏幕上

    我有一个非常大的应用程序 有多个对话框 我的任务是确保不完全可见的对话框 因为用户将其从可见屏幕区域拉出 移回屏幕中心 当我只处理一个屏幕时 这没问题 它工作得很好 但是 该应用程序的大多数用户的桌面上都有两个屏幕 当我尝试找出对话框显示在
  • TableModel setCellEditable 并自动将值设置回 false

    我目前正在尝试在 JTable 中实现 JPopupMenu 它允许解锁单元格以进行编辑 Override public void actionPerformed ActionEvent e if e getActionCommand Un
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • 覆盖乔达一周的第一天?

    是否有可能覆盖乔达弱的第一天sunday 因为 Joda 使用Monday作为一周的第一天 如果有办法的话 谁能解释一下 我在 SOF 中提到了以下主题 乔达时间 一周的第一天 https stackoverflow com questio
  • 是否有适用于 Java 的 CalDAV 客户端库? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想使用 CalDAV 协议与我的日
  • java内存不足然后退出

    我有一个必须分析大文件的软件 限制输入或提供无限内存都不是一个选择 所以我必须忍受飞行的 OOME 因为 OOME 只杀死线程 所以我的软件运行在一些糟糕的状态 从外面看一切都很好 因为进程正在运行 但在内部却是脑死亡 我想拔掉它的插头 但
  • 如何在列表视图中选择时启用视频序列自动播放?

    大家好 有人可以与我分享一下我如何编写我的 viewvideo java 类 以便它允许自动播放视频功能 自动排序在列表视图中播放所选视频的任务 从当前位置到最新录制的视频 按顺序直到最新的视频播放完毕 这类似于 YouTube 自动播放功
  • 在Android项目中引用(纯java)项目(找不到类)

    我试图在我的 Android 项目中引用一个纯 java 项目 gt Java 项目有一大堆我需要使用的类 哦 正如第一个回复所指出的 我正在使用 eclipse 是的 唯一的问题是 我总是找不到类 XXX 从方法 com example
  • Spring Boot 中的服务限流能力

    有什么办法可以实现Spring中其余服务的服务限制能力 特别是Spring boot 这里的期望是 我的服务暴露于外界 目前每秒 分钟的服务调用数量没有限制 我们希望通过设置限制来控制这一点 我有一个替代选项 通过跟踪并发哈希映射或任何缓存
  • jasper 报告文件中出现错误

    首先 我在 iReport 5 1 0 中创建一个 R D1 jrxml 文件 我执行该报告的 Java 代码如下所示 import java sql Connection import java sql DriverManager imp
  • Java泛型类型参数中的问号是什么意思? [复制]

    这个问题在这里已经有答案了 这是取自斯坦福解析器附带的一些示例的一小段代码 我已经用 Java 进行了大约 4 年的开发 但从未对这种风格的代码应该表示什么有非常深入的理解 List
  • java.lang.IllegalStateException:FragmentManager 已被销毁

    活动中onResume我称之为 volley request 的方法 它获取项目列表 然后将它们加载到此活动内的 ListFragment 中 当我第一次进入活动时 一切正常 但当我重新进入活动时 ListFragment 为空 并且控制台
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下
  • 如何使用 iBatis (myBatis) 的注释进行 IN 查询?

    我们只想在 MyBatis 中使用注释 我们确实在努力避免使用 xml 我们尝试使用 IN 子句 Select SELECT FROM blog WHERE id IN ids List
  • CS0246 找不到类型或命名空间名称“ErrorViewModel”(您是否缺少 using 指令或程序集引用?)

    我收到 CS0246 错误代码 我正在做一个 MVC net core 项目 我正在将 Razor 合并到我的 C 代码中 我在进行构建时收到此错误 我在最后一行收到错误 有人能帮我解决这个问题吗 global Microsoft AspN
  • Android NDK - 仅用 C/C++ 编写

    有没有一种可能的方法可以使用 C C 编写整个 NDK 应用程序 而无需像 hello jni 示例项目 HelloJni java 中那样的 Java 入门 类 以某种方式创建一个 HelloJni c 来执行相同的操作 从 Androi
  • Spring Boot 2 中的 401 代替 403

    With 春季启动 https projects spring io spring boot 1 5 6 发布我能够发送 HTTP 状态代码401代替403如中所述如果请求未经身份验证的uri 如何让Spring Security响应未经授

随机推荐

  • Android 9 底部导航栏样式不正确

    1 项目预制了GMS后 底部导航栏只剩下一个返回键和唤醒Assistant的按钮 需要回到原来的导航栏来 修改方式屏蔽掉 config defaultAssistantAccessPackage 使用Android原始的config def
  • 原码、补码、反码的关系及应用场景

    是三种表示有符号整数的方法 它们之间存在一定的关系 概念 原码是最基本的表示方法 即将一个数的符号位和数值位分开表示 符号位用0表示正数 用1表示负数 例如 7的原码为00000111 7的原码为10000111 反码是在原码的基础上 将负
  • 局域网、城域网、广域网、国际互联网(internet)

    计算机网络按覆盖范围分类可分为局域网 城域网 广域网 一 局域网 1 地理分布范较小 一般为数百米至数公里 可覆盖一幢大楼 一所校园或一个企业 一个家庭 2 数据传输速率高 一般为100Mbps 目前已出现速率高达1000Mbps的局域网
  • vue3 element-plus el-form的二次封装

    form表单的二次封装 vue3 element plus el form的二次封装 属性说明 属性名 类型 默认值 说明 data Array 页面展示数据内容 onChange Function false 表单事件 bindProps
  • R语言的科学编程与仿真 chapter 4 答案

    chapter 4 Ex1 programe cha4 6 ex1 Ex1 https img blog csdn net 20151226125117523 12 25 15 author Sigua file path file age
  • java 加载oracle 驱动 19c_037、Java--JDBC技术

    1 JDBC 简介 JDBC Java DataBase Connectivity java 数据库连接 是 JavaEE 平台下的技术规范 定义了在 Java 语言中连接数据 执行 SQL 语句的标准 可以为多种关系数据库提供统一访问 数
  • https认证过程(TLS认证过程)

    最近在准备春招 刚好看到https 网上搜了一圈没看到满意的 于是打算自己整理一下 以下内容来源于 计算机网络 第8版 谢希仁 加上了一些自己的拙见 目前的HTTPS是使用http tls的 所以直接了解tls的认证过程即可 曾经广泛使用的
  • SAP接口 财务凭证集成_差旅费报销

    OA系统调用此接口 传输差旅费报销流程的凭证信息到SAP 生成借款类型SAP凭证 调用标准的BABI方法实现 1 首先先介绍一下实现会计凭证生成的BAPI 参考链接 2 增强操作在另一篇文章 SAP接口 财务凭证集成 借款 在此不再赘述 3
  • 最近研究xcodebuild批量打包的一些心得

    转自Rainbird的个人博客 以前的时候只知道做安卓开发的兄弟挺辛苦的 不但开发的时候要适配一堆的机型 好不容易开发完了还要打一堆不同的包给不同的市场 没想到现在这些市场都开辟iOS市场 于是需要打一堆的包给不同的市场 面对暂时给的十二个
  • +-1 RMQ

    考虑分块 令 b log 2 n
  • [SQL系列] 从头开始学PostgreSQL 分库分表

    什么是分库分表 分库分表是一种数据库架构设计的方法 用于应对大规模数据的存储和查询 当单个数据库的存储容量或查询性能无法满足需求时 可以通过将数据分散存储在多个数据库服务器上 以提高系统的可扩展性和性能 分库分表通常包括两个步骤 分库和分表
  • 【模板】AC自动机(加强版)【AC自动机fail树上求最多出现次数】

    题目链接 P3796 给出N个模式串 然后我们用一个文本串去进行匹配 这样的做法 就是AC自动机了 于是乎 我们可以先将N个模式串丢进去 然后建立fail树 然后先对所有的节点求出最大串在文本串中出现的次数 然后利用dfs跑fail树的办法
  • 工业数据存储数据库选型比较

    我们讲工业互联网 工业大数据 首先需要把数据从工业现场采集上来 这是第一步也是基础 海量的数据从工业现场采集之后存在哪里呢 使用什么样的存储方式对后面的数据分析和计算有重要影响 这里对数据库方式的存储进行了一个选型比较 当前的数据库按类型分
  • 线性滤波和卷积的概念 ,线性和非线性对比理解

    一 线性滤波与卷积的基本概念 线性滤波可以说是图像处理最基本的方法 它可以允许我们对图像进行处理 产生很多不同的效果 做法很简单 首先 我们有一个二维的滤波器矩阵 有个高大上的名字叫卷积核 和一个要处理的二维图像 然后 对于图像的每一个像素
  • python多个%s的使用方法 %格式符 使用

    直接看代码理解 usr bin python coding utf 8 a wry b zjl c xxx print a s b s c s a b c 输出 a wry b zjl c xxx 参考 格式符 格式符为真实值预留位置 并控
  • lua 中table的字符串索引和变量索引

    a x y a x 10 print a x 输出10 print a x 输出nil print a y 输出10 a x表示以字符串 x 来索引table a x 以变量x的值来索引table
  • 利用ChatGPT如何进行批量长文本处理工具GPTBAT

    大家好 我是技术宅小伙 今天要跟大家分享一下我之前写的 GPT 长文本处理程序 当时我写完后就把它放到 Hog 上了 因为最开始是为了自己用 所以后来就忘掉了 最近有同学把它翻出来用 然后经常来问我 说不知道这个东西怎么用 其实在我看来这个
  • RTX3090 与pytorch对应版本的安装问题汇总

    一 Linux查看CUDA版本以及cudnn版本号 1 查看CUDA版本 方法1 查看文件 cat usr local cuda version txt 方法2 命令 nvcc version 2 查看cudnn版本 cat usr loc
  • django 转发_为什么django既是MVC也用了MTV 框架?

    概述 前面项目已经创建好 网站也有了 所以接下来要实现网站的具体功能 在 Django 人们把这具体的功能称为 应用 application 创建应用 作用 把相同的东西提取出来比如文章的标题内容等这些相同的字段设置我们可以将他提取出来 p
  • SQL统计次月复购率

    复购率 select zry 首次购买月份 zyhs 当月新增客户数 max case when fgy zry 1 then fgyhs else null end m1 max case when fgy zry 2 then fgyh