QlikView报表显示连续若干个月内活跃用户的数量
之前有朋友提到了这样一个需求,要计算三年中每年都有销售记录的客户量,仅仅有近期两年有销售纪录的客户量(假如某个用户2012年和2014年都有记录,在2013年没有则不计算在内)。以及近期一年的新增客户数量。这里大概描写叙述一下我的思路。
Sales表有两个字段Id, Year。要求除上述结果须要Group by Id,然后算Count(DISTINCT Year)的值要等于Min(Year)和Max(Year)的差+1。比方以下关于记录:
Year, Id
2014, 14
2013, 14
2012, 14
Max(Year)是2014,Min(Year)是2012。Count(DISTINCT Year)是3。则这个Id是连续三年都有记录的。以下的记录则是连续两年都有记录的:
2013,12
2014,12
Max(Year)是2014。Min(Year)是2013。Count(DISTINCT Year)是2。以下的记录则是近期一年的新客户:
2014,17
Max(Year)是2014,Min(Year)是2014,Count(DISTINCT Year)是1,。
详细代码是这种:
//导入数据
Customer:
LOAD
Year,
Id
From
../QVD/Customer.csv; //获得近期三年中,每一个Id出现的最大年份和最小年份,以及不同Year的数量
Frequency20140609Temp:
LOAD
Id as Id0609Temp,
Min(Year) as MinYear0609Temp,
Max(Year) as MaxYear0609Temp,
Count(DISTINCT Year) as CountYear0609Temp
Resident
Customer
Where
Year>=Year(Now())-2
Group By
Id; //取出Id出现的最大年份减去最小年份+1等于该Id出现的不同年份的数量
Frequency20140609:
LOAD
Id0609Temp as Id0609,
MinYear0609Temp as MinYear0609,
CountYear0609Temp as CountYear0609
Resident
Frequency20140609Temp
Where
MaxYear0609Temp-MinYear0609Temp + 1 = CountYear0609Temp
AND MaxYear0609Temp=Year(Now());//最大年份须要是今年,要不然可能是去年曾经连续两年都有销售记录的Id
以下是图表的Dimension,Expression和Chart:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenBsdW1l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenBsdW1l/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
如图所看到的,近期一年才有记录的是4个Id。连续两年有销售纪录的是2个Id,连续三年有销售纪录的是8个Id。
以下用一些数据測试一下我的结果。首先在Customer.csv中插入例如以下数据:
2012,18
2013,18
2012,19
2014,19
2013,20
(PS: 上面的这些Id在之前数据源中都不存在,是这次新加的)
依照我如今的逻辑,添加上面Id为18,19,20的记录都不会导致图表发生变化,例如以下所看到的:
再添加例如以下数据。
2014,21
2013,22
2014,22
2012,23
2013,23
2014,23
则上面图表中的三项数据都会+1,例如以下所看到的:
各位看官,假如文中有错还望指教!
感谢感谢!
QlikView报表显示连续若干个月内活跃用户的数量的更多相关文章
- 用Redis bitmap统计活跃用户、留存
Spool的开发者博客,描述了Spool利用Redis的bitmaps相关的操作,进行网站活跃用户统计工作. 原文:http://blog.getspool.com/2011/11/29/fast-e ...
- 水晶报表显示到aspx页面中
1.在前台添加水晶报表显示控件. <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server&q ...
- RoportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到RoportNG报表显示中文乱码和TestNG显 ...
- ReportNG报表显示中文乱码和TestNG显示中文乱码实力解决办法
最近在进军测试自动化框架学习阶段,但无意间总是会伴随小问题的困扰,比如中文乱码,而导致显示总是不舒服,个人觉得,就一定要解决,似乎有点点强迫症.所以遇到ReportNG报表显示中文乱码和TestNG显 ...
- ETL项目2:大数据清洗,处理:使用MapReduce进行离线数据分析并报表显示完整项目
ETL项目2:大数据清洗,处理:使用MapReduce进行离线数据分析并报表显示完整项目 思路同我之前的博客的思路 https://www.cnblogs.com/symkmk123/p/101974 ...
- 通向高可扩展性之路(推特篇) ---- 一个推特用来支撑1亿5千万活跃用户、30万QPS、22MB每秒Firehose、以及5秒内推送信息的架构
原文链接:http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active ...
- Redis-统计活跃用户
Bitmap(即Bitset)Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR以及其它位操作. package test ...
- 05 redis中的Setbit位图法统计活跃用户
一:场景=>>>长轮询Ajax,在线聊天时,能够用到 Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活 ...
- 支撑5亿用户、1.5亿活跃用户的Twitter最新架构详解及相关实现
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 摘要:Twitter出道之初只是个奋斗在RoR上的小站点,而如今已拥有1.5亿的活跃 ...
随机推荐
- 优雅得使用composer来安装各种PHP小工具
Composer对php世界的影响是巨大的,使用composer来代替PEAR一定是大势所趋.当小伙伴们都还沉浸在composer带来的便利的时候,有没有想过如何更好的使用composer呢,网上大部 ...
- sql 判断
sql server select expertId,mail= ( CASE mail WHEN '' THEN ' ' else mail end ) from Siemens.dbo.tblEx ...
- VC 与Matlab混合编程之引擎操作详解
Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便. Matlab 是一款将数值分析.矩阵计算.信 ...
- Winform快速导出
public static void ExportExcel(DataGridView DataGridView01){ Stream stream = null; StreamWriter writ ...
- java——关于数组的定义 和 访问修饰符的修饰内容
public class Shuzu { public static void main(String[] args) { // 定义数组 必须初始化长度,没有初始化要放数据 int[] in = { ...
- Android各版本重要变动记录
本文来自同步博客. Android M:运行时权限 运行时权限属于比较熟悉的话题不深入展开.除了support包可以让应用完成运行时权限,github上也有好多扩展.用得比较多的是Google官方的E ...
- linux中mysql表名默认区分大小写导致表找不到的问题
天将window的项目迁移到linux上面,然后登录时一直报用户表找不到的错误信息. 检查发现数据库中的表名是m_user, 后来才想起来是大小写问题, 找到问题原因,解决方案如下: 修改/etc/m ...
- github搭建个人博客----------绑定域名访问
首先你得有一个Github账号,没有的话去github.com注册一个账号,然后到达仓库信息填写界面: 创建仓库,如下图:(仓库名要以自己的github名作为前缀,后面的夹 .github.io) 后 ...
- [转]RabbitMQ,ActiveMQ,ZeroMQ,Kafka之间的比较与资料汇总
MQ框架非常之多,比较流行的有RabbitMq.ActiveMq.ZeroMq.kafka.这几种MQ到底应该选择哪个?要根据自己项目的业务场景和需求.下面我列出这些MQ之间的对比数据和资料. 第一部 ...
- Elasticsearch 5
Elasticsearch 5常见问题解决方案 安装运行 1.前置安装java8 jdk-8u112-linux-x64.rpm 下载地址:http://www.oracle.com/tech ...