1. 概述
1.1 版本
FineBI版本 | JAR 包 | 功能变动 |
---|---|---|
5.1 | - | - |
5.1.7 | 2020-11-05 | 函数释义优化&明确函数参数合法性 |
1.2 功能简介
用户需要经常使用函数进行计算,因此正确有效的函数写法就显得非常重要。
本文介绍 FineBI 函数的组成和正确写法格式。
2. 函数组成
FineBI 函数计算由四个内容组成:
内容 | 说明 |
---|---|
函数 | 用于对字段中的值或成员进行转换的语句 |
字段 | 用户数据表中的维度或指标 |
运算符 | 指明运算的符号 |
文本表达式 | 按照写入内容表示的常量值 |
例如,假设有以下计算:
IF(合同金额>2000,"大订单","小订单")
对应计算内容如下所示:
内容 | 说明 |
---|---|
函数 | IF |
字段 | 合同金额 注:字段必须在左侧字段框中选择,不可手动输入。 |
运算符 | 详情参见:计算运算符和优先级 |
文本表达式 | 字符串文本:"大订单"、"小订单" 数字文本:2000 |
注:并非所有计算都需要包含所有四个组件。例如,计算可能不包含文本表达式,例如计算SUM_AGG(合同金额)/SUM_AGG(购买数量) ,该计算只包含函数 SUM_AGG、除法运算符 (/) 以及字段「合同金额」和「购买数量」。
此外计算还可包含:
过滤组件作为参数参与计算 - 可插入计算中以取代常量值的占位符变量。详情参见:过滤组件作为参数参与计算
有关如何使用计算中的每个组件以及设置其格式的详细信息,请参见下面的部分。
3. 计算语法
常用函数语法详情参见:常用函数语法FAQ
3.1 概览
组成部分 | 使用位置 | 语法 | 示例 |
---|---|---|---|
函数 | 新增列、过滤 、 添加计算字段 | 函数语法详情查看对应函数: | SUM_AGG(合同金额) |
字段 | 字段需要在左侧的字段选择区域点击选择 | 合同金额(浅蓝色底) | |
运算符 | SUM_AGG(合同金额)/SUM_AGG(购买数量) | ||
文本表达式 | 数字文本写为数字。 字符串文本和日期文本带有引号。 布尔文本写为 true 或 false。 Null 文本写为 null。 | 2000 "大订单"、“2020-07-15” true 或者 false null | |
过滤组件作为参数参与计算 | 添加计算字段 | 过滤组件值变成一个参数值,过滤组件的名字即为参数名 写法同「字段」一致 | IF(合同金额>数值下拉过滤组件,"大订单","小订单") |
3.2 函数语法
在 FineBI 中,函数是计算的主要组成部分。
1)函数在 FineBI 计算中显示为蓝色,每个函数都有特定的语法。
例如:在 FineBI 中创建仪表板,添加计算字段,在打开的计算编辑器中,单击函数位置的图标,将出现一个「函数列表」。紧接着是「字段选择位置」,从函数列表中选择函数时,最右侧的部分将更新,包含有关该函数的必需语法 (1) 和说明 (2) 的信息,并带有一个或多个示例 (3),如下图所示:
2)可以在计算中使用多个函数。例如:IF(SIGN(利润)=1,利润,0)
该计算中有两个函数:IF、SIGN。
函数包括在另一个函数中(即嵌套),上面示例就是这种情况。在这种情况下,将在计算 IF 函数之前先计算「利润」的 SIGN 函数,因为后者在括号内部。
3.3 字段语法
可以在计算中插入字段。函数的语法通常会指明应在计算中的何处插入字段。例如:SUM_AGG(array)。
例如:如果要计算平均合同单价,则计算将使用数据源中的「合同金额」和「购买数量」字段,输入公式:SUM_AGG(合同金额)/SUM_AGG(购买数量),在左侧的字段选择区域点击选择需要的字段,如下图所示:
注:字段在 FineBI 计算中显示为浅蓝色底。
3.4 运算符语法
若要创建计算,需要了解 FineBI 支持的运算符。运算符在 FineBI 计算中显示为黑色。
详情参见:计算运算符和优先级
3.5 文本表达式语法
此部分描述在 FineBI 计算中使用文本表达式的正确语法。
文本表达式「按原样」表示常量值。使用函数时,有时需要使用文本表达式表示数字、字符串、日期等。文本表达式在 FineBI 计算中显示为黑灰色。
详情参见本文 3.1.节