博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QlikView报表显示连续若干个月内活跃用户的数量
阅读量:4977 次
发布时间:2019-06-12

本文共 1499 字,大约阅读时间需要 4 分钟。

之前有朋友提到了这样一个需求,要计算三年中每年都有销售记录的客户量,仅仅有近期两年有销售纪录的客户量(假如某个用户2012年和2014年都有记录,在2013年没有则不计算在内)。以及近期一年的新增客户数量。这里大概描写叙述一下我的思路。

 

Sales表有两个字段Id, Year。要求除上述结果须要Group by Id,然后算Count(DISTINCT Year)的值要等于Min(Year)和Max(Year)的差+1。比方以下关于记录:

Year, Id2014, 142013, 142012, 14

Max(Year)是2014,Min(Year)是2012。Count(DISTINCT Year)是3。则这个Id是连续三年都有记录的。以下的记录则是连续两年都有记录的:

2013,122014,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,	IdFrom	../QVD/Customer.csv;//获得近期三年中,每一个Id出现的最大年份和最小年份,以及不同Year的数量Frequency20140609Temp:LOAD	Id as Id0609Temp,	Min(Year) as MinYear0609Temp,	Max(Year) as MaxYear0609Temp,	Count(DISTINCT Year) as CountYear0609TempResident	CustomerWhere	Year>=Year(Now())-2Group By	Id;//取出Id出现的最大年份减去最小年份+1等于该Id出现的不同年份的数量Frequency20140609:LOAD	Id0609Temp as Id0609,	MinYear0609Temp as MinYear0609,	CountYear0609Temp as CountYear0609Resident	Frequency20140609TempWhere	MaxYear0609Temp-MinYear0609Temp + 1 = CountYear0609Temp	AND MaxYear0609Temp=Year(Now());//最大年份须要是今年,要不然可能是去年曾经连续两年都有销售记录的Id

以下是图表的Dimension,Expression和Chart:

 

如图所看到的,近期一年才有记录的是4个Id。连续两年有销售纪录的是2个Id,连续三年有销售纪录的是8个Id。

以下用一些数据測试一下我的结果。首先在Customer.csv中插入例如以下数据:

2012,182013,182012,192014,192013,20(PS: 上面的这些Id在之前数据源中都不存在,是这次新加的)

依照我如今的逻辑,添加上面Id为18,19,20的记录都不会导致图表发生变化,例如以下所看到的:

再添加例如以下数据。

2014,212013,222014,222012,232013,232014,23

则上面图表中的三项数据都会+1,例如以下所看到的:

 

各位看官,假如文中有错还望指教!

感谢感谢!

 

转载于:https://www.cnblogs.com/lxjshuju/p/6758668.html

你可能感兴趣的文章
node anyproxy ssi简易支持
查看>>
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
查看>>
PHP函数 ------ ctype_alnum
查看>>
网站安全
查看>>
WS-Addressing 初探
查看>>
.NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等...
查看>>
Markdown不常见功能
查看>>
(二)NUnit单元测试心得
查看>>
hdu_2604Queuing(快速幂矩阵)
查看>>
frame.bounds和center
查看>>
HDU 1102 Constructing Roads
查看>>
android StaticLayout参数解释
查看>>
多线程之ThreadLocal类
查看>>
Qt-读取文本导出word
查看>>
OC语言description方法和sel
查看>>
C#中得到程序当前工作目录和执行目录的五种方法
查看>>
扫描线与悬线
查看>>
用队列和链表的方式解决约瑟夫问题
查看>>
python 迭代器与生成器
查看>>
基于ASP.NET WEB API实现分布式数据访问中间层(提供对数据库的CRUD)
查看>>