计算的语法

<< Click to Display Table of Contents >>

当前位置:  附录 > 计算列和计算函数 

计算的语法

复制链接

1.计算语法的概要介绍

计算包括以下几个部分:

1.1函数

用于对数据列中的值或成员进行转换的语句。

永洪支持的所有函数示例请参考基础函数多粒度表达式函数动态计算函数

例如:SUM (expression)

1.2数据列

表示数据集或组件中的维度或度量(列)。

计算中的字段用col['列名']表示。

例如:col['省份']

1.3运算符

指明运算的符号。

+、-、*、 /、%、==、>、<、>=、<=、!=、&&、and、||、or、not、( )、[ ]

例如:col['Profit'] - col['Sales']。

1.4文本

表示常量值。

文本包括数字文本、字符串文本、布尔文本、Null文本。

1.5参数

表示变量。

计算中的参数用param['参数名']表示。

例如:param['id']。

1.6注释

表示对复杂的计算进行说明。

若要在计算中输入注释,请键入两个正斜杠 //。

例如:

   col['利润']*2

   //2倍利润

2.计算语法的详细介绍

2.1函数

函数是计算的主要组件,可用于各种不同的用途。

函数在永洪计算中显示为蓝色。

dateAdd(col['交易时间'], "day", 1)

每个函数都需要特定语法。

例如:

SUM函数需要以下语法:SUM(expression)(即SUM(col['销售额']))。pthPercentile函数需要以下语法:pthPercentile(expression,number)(即 pthPercentile(col['销售额'],90))。

在计算列窗口中,函数列表列出了所有支持的函数,选中某个函数即可查看该函数的说明,包含有关该函数的必需语法(1)和说明(2)的信息,并带有一个或多个示例(3)。

CalculateGramma1

可以在计算中使用多个函数。

例如:

if  (isNull(col['实际收货数量']) && col['DATA_SCORE_NEW'] == '发料数' ) then 0

elseif (col['DATA_SCORE_NEW'] == '发料数') then col['实际收货数量']

end

该计算中有函数:if,isNull,then,elseif,end。

2.2数据列

可以在计算中插入数据列。函数的语法通常会指明需要在计算中的何处插入列。

例如:SUM(expression)。

函数类型确定所使用的列类型。

例如:对于 SUM 函数,可以插入数值列,但不能插入日期列。

选择包括在计算中的列还取决于计算的用途。

例如:如果要计算利润率,那么您的计算将使用数据集中的“销售额”和“利润”字段:

SUM(col['销售额'])/SUM(col['利润'])

若要向计算中添加列,可以用以下方法:

在计算列窗口中,双击数据列。

在计算列窗口的编辑器中,键入字段名称。

说明:计算编辑器将尝试自动填充字段名称。

CalculateGramma2

数据列在永洪计算中显示为橙色。

2.3运算符

2.3.1各种运算符

运算符包括以下几种:

运算符

说明

举例

+ (addition)

+ 运算符在应用于数字时表示相加,在应用于字符串时表示串联。

SUM (expression)

– (subtraction)

- 运算符在应用于数字时表示相减,在应用于表达式时表示求反。

7 - 3

col['profit'] - col['sales']

-(7+3) = -10

* (multiplication)

* 运算符表示数值相乘。

col['Profit'] - col['Sales']

/ (division)% (modulo)

/ 运算符表示数值相除。

5 * 4 = 20

% (modulo)

若要在计算中输入注释,请键入两个正斜杠 //。

9%2返回 1,因为2除9进4还余1。

==、>、<、>=、<=、!=(比较)

这些是可以在表达式中使用的基本比较运算符。其含义如下:== (等于)、>(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、!= (不等于)。

每个运算符比较两个数字、日期或字符串,并返回 TRUE、FALSE 或 NULL。

 

2.3.2运算符的优先级

计算中的所有运算符都按特定顺序运算。

例如:2*1+2等于4而不等于6,因为乘法在加法之前执行(* 运算符始终先于+运算符运算)。

如果两个运算符具有相同的优先级。

例如:加法和减法(+或-),则在计算中从左向右进行运算。

可以使用括号和中括号来更改优先级顺序。括号中的运算符优先于括号外的运算符进行计算,从最内部的括号开始向外计算。

优先级

运算符

1

–(求反)

2

*, /, %

3

+, –

4

==, >, <, >=, <=, !=

5

not

6

&& and

7

|| or

2.4文本

使用函数时,有时需要使用常量表示数字、字符串、日期等。

可以在计算中使用数字、字符串、布尔值和Null文本。下面介绍每种类型以及如何设置其格式。

数字在计算中显示为红色,字符串显示为橙色,布尔值显示为蓝色,Null显示为黑色。

文本

说明

举例

数字文本

数字文本写为数字。

100,1.12

字符串文本

可以使用单引号或双引号编写字符串文本。

如果字符串内部包含单引号或双引号,则需两次键入该符号。

"满足条件",'满足条件'

dateTrunc里用到的'year', "year"。

布尔文本

布尔文本写为true或false

 

Null文本

Null文本写为Null。若要输入“Null”作为Null文本,请输入Null。

 

说明:

日期时间,无法直接输入日期时间类的常量值,需要通过date或parseDate函数将值转为日期值。

2.5参数

参数是占位符变量,可插入计算中取代常量值。在计算中使用参数时,可以允许用户动态更改值。

有关详细信息,请参见在计算列中使用参数

参数引用为param['参数名'],param显示为黑色,参数名显示为橙色。

2.6注释

可以向计算中添加注释,对计算及其各个部分进行备注,也可以对暂时不需要的计算进行注释。

注:注释不会包括在计算的运算中。

若要向计算中添加注释,请键入两个正斜杠(//)字符。

例如:

SUM(col['销售额'])/SUM(col['利润'])  //利润率

在此示例中,//利润率就是注释。

注释以两条正斜杠开始,直至该行结束。若要继续进行计算,必须另起一行。

可编写多行注释,每行都以两条正斜杠(//)开头。

例如:

SUM(col['销售额'])/SUM(col['利润'])  //利润率

//用来算利润率

//不能更改

注释在计算中显示为绿色。

3.计算中的数据类型

永洪支持字符串、日期/日期时间/时间、数字和布尔数据类型。如果创建计算字段,需要了解如何在计算式中使用和组合不同数据类型。许多函数仅适用于特定数据类型。

例如:

dateAdd函数只能接受日期/日期时间/时间数据类型作为第一个参数。可以输入dateAdd(date(2021, 1, 1), "year",1),有效结果应该是:2022-01-01。输入 dateAdd("2021-01-01", "year", 1) 会显示语法错误,且得不到有效结果。