java编一个漏斗_java – 漏斗分析计算,你如何计算漏斗?
首先,使用标准SQL,给出您的假设:
有一个简单布局的表EVENTS:
EVENTS
-----------------------------
SESION_ID , EVENT_NAME , TMST
要在某个时间获得执行步骤#1的会话:
-- QUERY 1
SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event1' GROUP BY SESSION_ID;
在这里,我假设event1可以在每个会话中发生一次以上.结果是一个在某个时间演示了event1的唯一会话列表.
为了获得step2和step3,我可以这样做:
-- QUERY 2
SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event2' GROUP BY SESSION_ID;
-- QUERY 3
SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event3' GROUP BY SESSION_ID;
现在,您要按顺序选择执行step1,step2和step3的会话.
更准确地说,您需要计算执行步骤1的会话,然后计算执行步骤2的会话,然后计算执行步骤3的会话.
基本上我们只需要将上面的3个查询与左连接组合在一起,列出进入漏斗的会话以及它们执行的步骤:
-- FUNNEL FOR S1/S2/S3
SELECT
SESSION_ID,
Q1.TMST IS NOT NULL AS PERFORMED_STEP1,
Q2.TMST IS NOT NULL AS PERFORMED_STEP2,
Q3.TMST IS NOT NULL AS PERFORMED_STEP3
FROM
-- QUERY 1
(SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event1' GROUP BY SESSION_ID) AS Q1,
LEFT JOIN
-- QUERY 2
(SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event2' GROUP BY SESSION_ID) AS Q2,
LEFT JOIN
-- QUERY 3
(SELECT SESSION_ID,MIN(TMST) FROM EVENTS WHERE EVENT_NAME='event2' GROUP BY SESSION_ID) AS Q3
-- Q2 & Q3
ON Q2.SESSION_ID=Q3.SESSION_ID AND Q2.TMST
-- Q1 & Q2
ON Q1.SESSION_ID=Q2.SESSION_ID AND Q1.TMST
结果是在步骤1进入漏斗的唯一会话列表,并且可能继续到step2和step3 ……例如:
SESSION_ID_1,TRUE,TRUE,TRUE
SESSION_ID_2,TRUE,TRUE,FALSE
SESSION_ID_3,TRUE,FALSE,FALSE
...
现在我们只需要计算一些统计数据,例如:
SELECT
STEP1_COUNT,
STEP1_COUNT-STEP2_COUNT AS EXIT_AFTER_STEP1,
STEP2_COUNT*100.0/STEP1_COUNT AS PERCENTAGE_TO_STEP2,
STEP2_COUNT-STEP3_COUNT AS EXIT_AFTER_STEP2,
STEP3_COUNT*100.0/STEP2_COUNT AS PERCENTAGE_TO_STEP3,
STEP3_COUNT*100.0/STEP1_COUNT AS COMPLETION_RATE
FROM
(-- QUERY TO COUNT session at each step
SELECT
SUM(CASE WHEN PERFORMED_STEP1 THEN 1 ELSE 0 END) AS STEP1_COUNT,
SUM(CASE WHEN PERFORMED_STEP2 THEN 1 ELSE 0 END) AS STEP2_COUNT,
SUM(CASE WHEN PERFORMED_STEP3 THEN 1 ELSE 0 END) AS STEP3_COUNT
FROM
[... insert the funnel query here ...]
) AS COMPUTE_STEPS
Etvoilà!
现在进行讨论.
第一点,考虑到你采用“集合”(或功能)思维方式而不是“程序化”方法,结果非常简单.不要将数据库可视化为具有列和行的固定表的集合……这是它的实现方式,但它不是您与它交互的方式.这是所有套装,您可以按照您需要的方式安排套装!
第二点,如果您使用MPP数据库,查询将自动优化为并行运行.您甚至不需要以不同方式编写查询,使用map-reduce或其他…我在我的测试数据集上运行了相同的查询,其中包含超过1亿个事件,并在几秒钟内获得结果.
最后但并非最不重要的是,查询打开了无限可能.只需按引用,关键字,登录页面,用户信息和分析的结果进行分组,例如提供最佳转换率!
java编一个漏斗_java – 漏斗分析计算,你如何计算漏斗?相关推荐
- java中double身高_用JAVA编一个程序 输入10名同学的身高,找出最高升高,要求使用对象数组类型的带参方法来实现...
用JAVA编一个程序 输入10名同学的身高,找出最高升高,要求使用对象数组类型的带参方法来实现 关注:285 答案:5 mip版 解决时间 2021-02-05 07:44 提问者女人不需要倾国倾 ...
- java 员工类算工资_用java设计一个员工类,可以计算工资个人所得税
用java设计一个员工类,可以计算工资个人所得税 1. 背景 老师在课上布置了几道java编程题,此为其中之一 2. 题目内容 设计一个员工类.该员工具有下列私有属性:编号,姓名,基本工资,奖金 提 ...
- java 十六进制转十进制_JAVA知识-分析JAVA中的重点和难点
Java中有很多内容在开发项目的过程中并不常用,但是却是很重要的部分,为了避免忘记,今天重新温习了一遍Java中的重点和难点,借此机会记录一下方便以后查找. 本文主要分为以下几个部分: 1.进制的相互 ...
- java输入一个数字输出_java 输入一个数字,反转输出这个数字的值(实现方法)
如下所示: package 第四天; import java.util.Scanner; public class 数字反转 { public static void main(String[] ar ...
- java线程内存溢出_Java常见问题分析(内存溢出、内存泄露、线程阻塞等)
Java垃圾回收机制(GC) 1.1 GC机制作用 1.2 堆内存3代分布(年轻代.老年代.持久代) 1.3 GC分类 1.4 GC过程 Java应用内存问题分析 2.1 Java内存划分 2.2 J ...
- java定义一个点_JAVA 定义一个Point类 它的对象是指一个平面上的点(x,y),在定义Point类中要定义它的三个构造函数...
JAVA 定义一个Point类 它的对象是指一个平面上的点(x,y),在定义Point类中要定义它的三个构造函数 JAVA 定义一个Point类 它的对象是指一个平面上的点(x,y),在定义Point ...
- java新建一个女朋友_java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写...
创建一个女朋友,她有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据 ...
- java编一个求圆柱表面积_Java:输入圆柱体的半径和高,计算并输出圆柱体的体积和表面积...
展开全部 程序如下: package test; import java.util.Scanner; public class TestCircle { public static void main ...
- java编一个漏斗_在java中编一个可以输出星号金字形状的程序,挂上详解!重谢...
展开全部 用星号来打印金字塔,有一62616964757a686964616fe4b893e5b19e31333332643331定的规律: 1.中心对齐: 2.从上往下,每一层的星星个数都是奇数,而 ...
最新文章
- Hibernate框架第二天
- 踏踏实实做事,老老实实做人
- HDU 2612 Find a way
- 点击按钮修改背景颜色及节点操作隔行变色案例
- JS实时监听DOM元素变化 - MutationObserver
- 【公告】社区周刊即日起停刊
- 关于DataSet与Strongly typed DataSet几点思考(原创)
- enum 在c中的使用
- js原生简单生成卡密例子
- 老化测试相关知识点介绍
- 常见的meta标签用法
- 历史大数据证“低薪薄俸”易诱发腐败
- 局域网即时通讯软件应该怎么选择
- python 画彩虹_python – 在matplotlib中,我如何绘制多色线,如彩虹
- 制造企业生产排产现状和APS系统的解决方案
- Python3 根据时区获取时间,并计算时间差
- 康考迪亚大学应用计算机科学,康考迪亚大学计算机
- 数学之美-读书笔记6-10章
- 问题:SQL Server数据库不允许更改
- 电容屏分类及优缺点介绍
热门文章
- 记者:你为什么还不退休? | 任正非:我上午可以喝茶,下午再喝茶就睡不着了...
- 一款QQ盗号木马分析
- 桂林游记, 终于完成了,
- linux查询网卡是百兆还是千兆,查看网卡是百兆还是千兆
- 区块链共享经济:为什么可以挑战Uber和Airbnb?
- 谷哥学术2022年资源分享下载列表 3/20
- 科普文章:公众电磁辐射与防护的研究
- 自建ES通过OSS快照迁移至阿里云ES
- 传奇服务器需要什么配置?传奇服务器租用价格表
- 深度学习图像分类:植物幼苗图像分类入门(Plant Seedlings Classification)