<< 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)。
可以在计算中使用多个函数。
➢例如:
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['利润'])
若要向计算中添加列,可以用以下方法:
•在计算列窗口中,双击数据列。
•在计算列窗口的编辑器中,键入字段名称。
➢说明:计算编辑器将尝试自动填充字段名称。
数据列在永洪计算中显示为橙色。
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) 会显示语法错误,且得不到有效结果。