BIEE時間序列函數
BIEE使用時間序列前提
含有時間維,
只修改這個會報錯,需要添加時間序列鍵
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,First 和 Last 函數。
如何和其他聚合函數 如 RANK,TOPN,RSUM,FILTER 則會向內推送
如 PeriodRolling(TOPN(measure)) 作為 TOPN(PeriodRolling(measure))
後端
前端:
示例:從當月往前2月的累計(3個月的累計收入)
Ago
一個時間序列聚合函數, 用於計算從當前時間追溯到以前的指定時段之間的聚合值。例如, Ago 可以生成當前季度每個月的銷售額以及相應的季前銷售額。
語法:AGO(expr, time_level, offset)
Expr:是至少引用一個度量列的表達式。
Time_level:是時段的類型,例如季度,月,年,是可選參數。
Ago("BI"."F01 收入"."銷量" , 1)
這樣也是成立的,他依靠前端查詢粒度來展示數據。
Offset:是一個正數,表示時間偏移量,可選。
示例:
後端RPD
前端由於無法使用到時間層級,所以level 要手動寫上去 表名.維度名稱.維度層級
TODATE
一個時間序列聚合函數, 用於累計從指定時段開始到當前時間的度量屬性。例如, 此函數可以計算年初至今的銷售額。
語法:TODATE(expr, time_level)
Expr: 是一個至少引用一個度量列的表達式
Time_level:是時段的類型, 例如季度, 月或年。
年累計:年初到至今
報表為月粒度:從所選月份所在年的1月累計到所選月份為止。
報表為日粒度:從所選日期所在年的1月1號累計到所選日期為止。
月累計:月初到至今
從所選日期所在月份1號累計到所選日期為止。
年累計:
月累計:
前端使用函數和Ago一樣 level 要手動寫上去 表名.維度名稱.維度層級
BIEE時間序列函數