BIEE时间序列函数使用方法

浏览: 4182

PeriodRolling

此函数计算在距当前时间的 x 个时间单位开始到 y 个时间单位结束这一时段内的度量总和。时间单位由该函数第一个参数中度量的度量级别以及该函数所属查询的查询级别确定。

语法:PERIODROLLING(measure, x[,y][,hlerarchy])

 

x :是一个整数, 指定距当前时间的偏移时间,当前时间为0  向前为负,向后则为正数。
y :指定该函数将计算的时间单位数,当前则为0  向前为负,向后则为正数。
hierarchy :是可选参数, 指定在时间维中 要用于计算时间窗口的层次的名称,如年,月,日。

如果不限定范围,则可以使用UNBOUND

如:PeriodRolling(measure,-unbound,0)就是取从最开始的时间到现在的sum。

也可以跟AGGREGATE AT 一起使用

如:PeriodRolling(Aggregate(measure AT level [, level1, levelN])),-unbound,0)

 

不能在PeriodRolling中嵌入Ago,TODATE,FirstLast 函数。

如何和其他聚合函数 如 RANK,TOPN,RSUM,FILTER 则会向内推送

PeriodRolling(TOPN(measure)) 作为 TOPN(PeriodRolling(measure))执行。

 后端

Clipboard Image.png

前端:

Clipboard Image.png

示例:从当月往前2月的累计(3个月的累计收入)

Clipboard Image.png



Ago

一个时间序列聚合函数, 用于计算从当前时间追溯到以前的指定时段之间的聚合值。例如, Ago 可以生成当前季度每个月的销售额以及相应的季前销售额。

 

语法:AGO(expr, time_level, offset)

 

Expr:是至少引用一个度量列的表达式。

Time_level:是时段的类型,例如季度,月,年,是可选参数。

Ago("BI"."F01 收入"."销量"  , 1)

这样也是成立的,他依靠前端查询粒度来展示数据。

Offset:是一个正数,表示时间偏移量,可选。

 

示例:

后端RPD

Clipboard Image.png

 

前端由于无法使用到时间层级,所以level 要手动写上去 表名.维度名称.维度层级

 Clipboard Image.png

Clipboard Image.png

 


TODATE

一个时间序列聚合函数, 用于累计从指定时段开始到当前时间的度量属性。例如, 此函数可以计算年初至今的销售额。

语法:TODATE(expr, time_level)

 

Expr: 是一个至少引用一个度量列的表达式

Time_level是时段的类型, 例如季度, 月或年。

 

年累计:年初到至今

报表为月粒度:从所选月份所在年的1月累计到所选月份为止。

报表为日粒度:从所选日期所在年的1月1号累计到所选日期为止。

 

月累计:月初到至今

 从所选日期所在月份1号累计到所选日期为止。

年累计:

Clipboard Image.png

月累计:

Clipboard Image.png


前端使用函数和Ago一样 level 要手动写上去 表名.维度名称.维度层级

Clipboard Image.png

推荐 0
本文由 黄金阳 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

AGO(expr, time_level, offset)的offset不能引用列吗?想用AGO(expr, "Month", "Month of Year"-1)求个年初值。RPD中用聚合规则first得不出准确值。

要回复文章请先登录注册