跳转至

PowerFix

按照当前指定的分类维度进行预聚合计算。

语法

PowerFix ( <聚合结果> [, <分类维度1>[, <分类维度2>[, ...]]]
           [, <筛选条件1>[, <筛选条件2>[, ...]]]
           [, <移除筛选>]
参数 说明 类型
聚合结果 计算不同分类维度下的聚合结果 表达式
分类维度 用于分类的分类维度 字段
筛选条件 基于筛选后的数据计算聚合结果 表达式
移除条件 移除当前计算环境下作用在字段上的筛选条件 表达式
  1. 聚合结果为函数表达式,必须包含聚合函数

  2. 筛选条件只支持关系表达式,不支持使用 聚合函数、窗口函数、预聚合函数、同环比函数

  3. 移除条件必须为 REMOVEFILTER 函数

返回值

当 PowerFix 中的分类维度为空时,返回单个值

当 PowerFix 中的分类维度不为空时,返回多个值

备注

PowerFix 中不支持嵌套其他预聚合函数

示例

在订单表中,新增一个计算字段,计算不同订单状态下的订单金额总和

'订单表'[订单金额总和] = 
PowerFix ( SUM('订单表'[订单金额]) , '订单表'[订单状态] )

在会员表中新增三个计算字段,分别表示该用户 最近30日访问天数 、 最近30日成交金额 、最近访问距今天数

'会员表'[最近30日访问次数] =
PowerFix ( COUNTDISTINCT( DateTrunc('访问表'[访问时间],"DAY"))
           ,'会员表'[用户 ID]
           ,DateTrunc('访问表'[访问时间],"DAY") < TODAY()
           ,DateTrunc('访问表'[访问时间],"DAY") >= DATAADD( TODAY(),-30,"DAY" ) 
          )
'会员表'[最近30日成交金额] =
PowerFix ( SUM( '订单表'[订单金额] )
           ,'会员表'[用户 ID]
           ,DateTrunc('订单表'[访问时间],"DAY") < TODAY()
           ,DateTrunc('订单表'[访问时间],"DAY") >= DATAADD( TODAY(),-30,"DAY" ) 
          )
'会员表'[最近访问距今天数] =
PowerFix ( DATEDIFF ( NOW() - MAX('访问表'[访问时间]) )
           ,'会员表'[用户 ID]
           ,DateTrunc('访问表'[访问时间],"DAY") >= DATAADD( TODAY(),-30,"DAY" ) 
          )