使用分析函数,您可以通过预测、趋势线和聚类等模型来浏览数据。或者,您可以将分析函数拖放到工作簿编辑器中。
或者,您可以通过在工作簿编辑器中数据面板的“分析”选项卡上选择预测、趋势线和聚类来将其添加到工作簿中。请参见将统计分析函数添加到可视化。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
CLUSTER |
|
使用 K-平均值 (K-Means) 或分层聚类基于一个或多个输入表达式将一组记录收集到组中。 |
|
FORECAST |
按天统计的收入预测示例 此示例选择按天统计的收入预测。 FORECAST("A - Sample Sales"."Base Facts"."1- Revenue" Target, ("A - Sample Sales"."Time"."T00 Calendar Date"),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue 按年和季度统计的收入预测示例 此示例选择按年和季度统计的收入预测。 FORECAST("A - Sample Sales"."Base Facts"."1- Revenue", ("A - Sample Sales"."Time"."T01 Year" timeYear, "A - Sample Sales"."Time"."T02 Quarter" TimeQuarter),'forecast', 'numPeriods=30;predictionInterval=70;') ForecastedRevenue |
使用指数平滑 (Exponential Smoothing, ETS)、季节性 ARIMA、ARIMA 或 Prophet 创建指定度量随序列变化的时间序列模型。此函数输出对 numPeriods 参数指定的一组期间的预测。 另请参见下面的其他 FORECAST 函数选项。 |
FORECAST(measure, ([series]), output_column_name, options,[runtime_binded_options])])
其中:
另请参见下面的其他 FORECAST 函数选项。 |
OUTLIER |
|
使用 K-平均值 (K-Means)、分层聚类或多元非正常值检测算法并基于一个或多个输入表达式将一条记录分类为非正常值。 |
|
REGR |
|
拟合线性模型,并返回拟合值或模型。此函数可用于拟合两个度量的线性曲线。 |
|
TRENDLINE |
|
Oracle 建议您在查看可视化时使用添加统计信息属性应用趋势线。请参见调整可视化属性。 拟合线性、多项式或指数模型,并返回拟合值或模型。numeric_expr 代表趋势的 Y 值,series(时间列)代表 X 值。 |
|
FORECAST 函数选项 下表列出了可在 FORECAST
函数中使用的选项。
选项名称 | 值 | 说明 |
---|---|---|
numPeriods | 整数 | 要预测的期间数。 |
predictionInterval | 0 到 100,其中值越大表示置信度越高 | 预测的置信度级别。 |
modelType |
ETS(Exponential Smoothing,指数平滑) SeasonalArima ARIMA Prophet |
要用于预测的模型。 |
useBoxCox |
TRUE FALSE |
如果为 TRUE,则使用 Box-Cox 转换。 |
lambdaValue | 不适用 |
Box-Cox 转换参数。 如果为 NULL 或 否则,在估计模型之前对数据进行转换。 |
trendDamp |
TRUE FALSE |
此项特定于指数平滑模型。 如果为 TRUE,则使用阻尼趋势。如果为 FALSE 或 NULL,则使用非阻尼趋势。 |
errorType |
不适用 |
此项特定于指数平滑模型。 |
trendType |
N(无) A(相加) M(相乘) Z(自动选择) |
此项特定于指数平滑模型。 |
seasonType |
N(无) A(相加) M(相乘) Z(自动选择) |
此项特定于指数平滑模型。 |
modelParamIC |
ic_auto ic_aicc ic_bic ic_auto(这是默认值) |
在模型选择中使用的信息标准 (information criterion, IC)。 |
转换函数可将值从一种形式转换为另一种形式。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
CAST |
|
更改表达式的数据类型,或者将空值文字更改为其他数据类型。例如,可以转换 customer_name(一种 使用 不要使用 |
|
IFNULL |
|
测试表达式的求值结果是否为空值,如果是,则会为该表达式分配指定值。 |
|
INDEXCOL |
|
使用外部信息返回要查看的已登录用户的适当列。 |
|
NULLIF |
|
比较两个表达式。如果它们相等,则该函数返回空值。如果它们不相等,则此函数返回第一个表达式。不能为第一个表达式指定文字 "NULL"。 |
|
To_DateTime |
|
将 DateTime 格式的字符串文字转换为 DateTime 数据类型。 |
|
VALUEOF |
|
在筛选器中引用语义模型变量的值。 将 expr 变量用作 |
|
这些函数计算时间戳值或将时间戳值向下舍入到指定的最近时段,例如小时、日期、星期、月份和季度。
您可以使用计算的时间戳按不同的粒度聚合数据。例如,您可以将 EXTRACTDAY()
函数应用于销售订单日期来计算下单那天午夜的时间戳,以便可以按天聚合数据。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
提取日期 |
EXTRACTDAY("Order Date")
|
返回输入值出现那天午夜 (12 AM) 的时间戳。例如,如果输入时间戳为 2 月 22 日 3:02:01 AM,则该函数返回的时间戳为 2 月 22 日 12:00:00 AM。 |
|
提取小时 |
EXTRACTHOUR("Order Date")
|
返回输入值出现时的小时开始时间的时间戳。例如,如果输入时间戳为 11:18:30 PM,则该函数返回的时间戳为 11:00:00 PM。 |
|
提取几点钟 |
EXTRACTHOUROFDAY("Order Date")
|
返回如下时间戳:小时等于输入值中的小时,年、月、日、分钟和秒为默认值。 |
|
提取毫秒 |
EXTRACTMILLISECOND("Order Date")
|
返回包含输入值中的毫秒的时间戳。例如,如果输入时间戳为 15:32:02.150,则该函数返回的时间戳为 15:32:02.150。 |
|
提取分钟 |
EXTRACTMINUTE("Order Date")
|
返回输入值出现时的分钟开始时间的时间戳。例如,如果输入时间戳为 11:38:21 AM,则该函数返回的时间戳为 11:38:00 AM。 |
|
提取月份 |
EXTRACTMONTH("Order Date")
|
返回输入值出现那个月第一天的时间戳。例如,如果输入时间戳为 2 月 22 日,则该函数返回的时间戳为 2 月 1 日。 |
|
提取季度 |
EXTRACTQUARTER("Order Date")
|
返回输入值出现那个季度第一天的时间戳。例如,如果输入时间戳是在第三个财政季度,则该函数返回的时间戳为 7 月 1 日。 |
|
提取秒 |
EXTRACTSECOND("Order Date")
|
返回输入值的时间戳。例如,如果输入时间戳为 15:32:02.150,则该函数返回的时间戳为 15:32:02。 |
|
提取星期 |
EXTRACTWEEK("Order Date")
|
返回输入值出现那一周第一天(星期日)的日期。例如,如果输入时间戳为 9 月 24 日星期三,则该函数返回的时间戳为 9 月 21 日星期日。 注:如果一周第一天(即星期日)在上一年中,因此会对聚合造成负面影响,该函数将返回本年度中一周第 7 天(即星期六),而不是上一年中一周第一天。例如,1/1/24、1/2/24 和 1/3/24 都聚合到 1/6/24 星期六,而不是 12/29/23 星期日。 |
|
提取年份 |
EXTRACTYEAR("Order Date")
|
返回输入值出现那一年 1 月 1 日的时间戳。例如,如果输入时间戳是在 1967 年,则该函数返回的时间戳为 1967 年 1 月 1 日。 |
|
下面的这些提示可帮助您在计算中使用主题区域日期时获得最佳结果。
向计算添加主题区域日期
如果将日期从主题区域直接拖放到计算中,并将其作为字符串或整数进行处理,则将会收到错误。出现这种情况是因为基础日期值是时间戳。
请改为使用日期提取函数之一来解释日期。
例如,您可能具有以下主题区域日期。
.png 的说明
要从这些主题区域日期中提取月份,请使用 ExtractMonthOfYear 函数:
case when monthname(ExtractMonthOfYear("Date")) in ('Jan' ,'Feb', 'Mar') THEN 'Q1' ELSE 'Rest of the year' END
显示在查询结果集上执行操作的函数。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
BottomN |
|
返回表达式最低的 n 个值,按照从高到低的顺序排列。 |
|
FILTER |
|
使用指定的预聚合过滤器计算表达式。 |
|
MAVG |
|
计算结果集中最后 n 行数据(包括当前行)的移动平均值。 |
|
MSUM |
|
计算最后 n 行数据(包括当前行)的移动总和。 第一行的总和等于第一行的数值表达式。第二行的总和通过计算前两行数据的总和得出,依此类推。在您到达第 n 行以后,根据最后 n 行数据计算总和。 |
|
NTILE |
|
根据用户指定的范围确定值的排名。它返回整数,表示任意排名范围。示例中显示了从 1 到 100 的范围,最低销售额 = 1,最高销售额 = 100。 |
|
PERCENTILE |
|
计算符合数值表达式参数要求的每个值的百分比排名。百分比段排名范围介于 0(第 1 个百分比段)和 1(第 100 个百分比段)之间,包含两端的值。 |
|
RANK |
|
计算符合数值表达式参数要求的每个值的排名。排名 1 分配给最大的数字,下一个连续的整数(2、3、4...)依次分配给后续的每个排名。如果某些值相等,则分配相同的排名(例如,1、1、1、4、5、5、7...)。 |
|
RCOUNT |
|
采用记录集作为输入,并计算迄今为止出现的记录数量。 |
|
RMAX |
|
采用记录集作为输入,并根据迄今为止出现的记录显示最大值。指定数据类型必须是可排序的数据类型。 |
|
RMIN |
|
采用记录集作为输入,并根据迄今为止出现的记录显示最小值。指定数据类型必须是可排序的数据类型。 |
|
RSUM |
|
根据迄今为止出现的记录来计算运行总和。 第一行的总和等于第一行的数值表达式。第二行的总和通过计算前两行数据的总和得出,依此类推。 |
|
TOPN |
|
返回表达式最高的 n 个值,按照从低到高的顺序排列。 |
|
有关使用显示函数的提示
filter (<measure> using fiscal_quarter = 'Q4')
filter (<measure> using fiscal_quarter = 'Q3')
filter (<measure> using fiscal_year = 'FY24')
求值函数是可用于通过表达式传递来获取高级计算的数据库函数。
嵌入式数据库函数可能需要一个或多个列。这些列将由该函数中的 %1 到 %N 引用。实际列必须列在该函数后面。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
EVALUATE |
|
将包含作为参数的可选参考列的指定数据库函数传递给数据库,以供求值时使用。 |
|
EVALUATE_AGGR |
|
将包含作为参数的可选参考列的指定数据库函数传递给数据库,以供求值时使用。此函数专门用于带有 |
|
本部分中介绍的数学函数执行数学运算。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
ABS |
|
计算数值表达式的绝对值。 expr 是求值结果为数值的任意表达式。 |
|
ACOS |
|
计算数值表达式的反余弦。 expr 是求值结果为数值的任意表达式。 |
|
ASIN |
|
计算数值表达式的反正弦。 expr 是求值结果为数值的任意表达式。 |
|
ATAN |
|
计算数值表达式的反正切。 expr 是求值结果为数值的任意表达式。 |
|
ATAN2 |
|
计算 y /x 的反正切,其中,y 是第一个数值表达式,x 是第二个数值表达式。 |
|
CEILING |
|
将一个非整数数值表达式的值舍入到最近的最大整数。如果数值表达式的求值结果是整数,则 |
|
COS |
|
计算数值表达式的余弦。 expr 是求值结果为数值的任意表达式。 |
|
COT |
|
计算数值表达式的余切。 expr 是求值结果为数值的任意表达式。 |
|
DEGREES |
|
将表达式的值从弧度转换为角度。 expr 是求值结果为数值的任意表达式。 |
|
EXP |
|
以值为底计算指定的幂。计算 e 的 n 次幂,其中 e 是自然对数的底。 |
|
ExtractBit |
|
检索特定位置的位,以整数表示。它返回与该位所在位置相对应的整数 0 或 1。 |
|
FLOOR |
|
将一个非整数数值表达式的值舍入到最近的最小整数。如果数值表达式的求值结果为整数,则 |
FLOOR(expr) |
LOG |
|
计算表达式的自然对数。 expr 是求值结果为数值的任意表达式。 |
|
LOG10 |
|
计算以 10 为底的对数表达式。 expr 是求值结果为数值的任意表达式。 |
|
MOD |
|
将第一个数值表达式除以第二个数值表达式,然后返回商的余数部分。 |
|
PI |
|
返回 pi 的常数值。 |
|
POWER |
|
求出第一个数值表达式的值,并将该值用作第二个数值表达式中指定的幂。 |
|
RADIANS |
|
将表达式的值从角度转换为弧度。 expr 是求值结果为数值的任意表达式。 |
|
RAND |
|
返回 0 至 1 之间的伪随机数。 |
|
RANDFromSeed |
|
返回基于种子值的伪随机数。如果给定种子值,将生成相同的一组随机数。 |
|
ROUND |
|
将数值表达式舍入精确到 n 位。 expr 是求值结果为数值的任意表达式。 integer 是任意正整数,它表示精度的位数。 |
|
SIGN |
|
返回以下值:
|
|
SIN |
|
计算数值表达式的正弦。 |
|
SQRT |
|
计算数值表达式参数的平方根。数值表达式的求值结果必须为非负数。 |
|
TAN |
|
计算数值表达式的正切。 expr 是求值结果为数值的任意表达式。 |
|
TRUNCATE |
|
截断小数,以返回从小数点开始算起的指定位数。 expr 是求值结果为数值的任意表达式。 integer 是任意正整数,它表示从小数点位置右侧返回的字符数。 |
|
运行聚合函数会对多个值执行运算以创建概要结果。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
MAVG |
计算结果集中最后 n 行数据(包括当前行)的移动平均值。 expr 是求值结果为数值的任意表达式。integer 是任意正整数。它表示最后 n 行数据的平均值。 |
|
|
MSUM |
|
计算最后 n 行数据(包括当前行)的移动总和。 expr 是求值结果为数值的任意表达式。integer 是任意正整数。表示最后 n 行数据的和。 |
|
RSUM |
|
根据迄今为止出现的记录来计算运行总和。 expr 是求值结果为数值的任意表达式。 |
|
RCOUNT |
|
采用记录集作为输入,并计算迄今为止出现的记录数量。 expr 是任意数据类型的表达式。 |
|
RMAX |
|
采用记录集作为输入,并根据迄今为止出现的记录显示最大值。 expr 是任意数据类型的表达式。 |
|
RMIN |
|
采用记录集作为输入,并根据迄今为止出现的记录显示最小值。 expr 是任意数据类型的表达式。 |
|
对数据进行建模时,可以使用空间函数执行地理分析。例如,您可能要计算两个地理区域(称为形状或多边形)之间的距离。
注:
不能在可视化工作簿的定制计算中使用这些空间函数。函数 | 示例 | 说明 | 语法 |
---|---|---|---|
GeometryArea |
|
计算形状所占面积。 |
|
GeometryDistance |
|
计算两个形状之间的距离。 |
|
GeometryLength |
|
计算形状的周长。 |
|
GeometryRelate |
|
确定一个形状是否在另一个形状内。返回 TRUE 或 FALSE 字符串 (varchar)。 |
|
GeometryWithinDistance |
|
确定两个形状是否在指定的彼此距离范围内。返回 TRUE 或 FALSE 字符串 (varchar)。 |
|
字符串函数执行各种字符操纵功能。这些函数对字符串进行操作。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
ASCII |
|
将单个字符串转换成介于 0 与 255 之间的相应 ASCII 代码。如果字符表达式求值结果为多个字符,将返回与表达式中第一个字符对应的 ASCII 代码。 expr 是求值结果为字符串的任意表达式。 |
|
BIT_LENGTH |
|
返回指定字符串的长度,以位为单位。每个 Unicode 字符长度为 2 个字节(相当于 16 位)。 expr 是求值结果为字符串的任意表达式。 |
|
CHAR |
|
将介于 0 与 255 之间的数值转换成与 ASCII 代码相对应的字符值。 expr 是求值结果为介于 0 和 255 之间数值的任意表达式。 |
|
CHAR_LENGTH |
|
返回指定字符串的长度,以字符数为单位。字符串的长度不包括前导和尾随空白字符。 expr 是求值结果为字符串的任意表达式。 |
|
CONCAT |
|
连接两个字符串。 exprs 是求值结果为逗号分隔字符串的表达式。 在 |
|
INSERT |
|
将指定的字符串插入到另一个字符串的指定位置。 expr1 是求值结果为字符串的任意表达式。它标识目标字符串。 integer1 是任意正整数,它表示从目标字符串开头数起的第几个字符处插入第二个字符串。 integer2 是任意正整数,它表示目标字符串中由第二个字符串替换的字符数。 expr2 是求值结果为字符串的任意表达式。它标识要插入到目标字符串中的字符串。 |
|
LEFT |
|
返回从字符串左侧算起的指定字符数。 expr 是求值结果为字符串的任意表达式 integer 是任意正整数,它表示从字符串左侧开始返回的字符数。 |
|
LENGTH |
|
返回指定字符串的长度,以字符数为单位。返回的长度不包括任何尾随空白字符。 expr 是求值结果为字符串的任意表达式。 |
|
LOCATE |
|
返回字符串在另一个字符串中的位置,以数字表示。如果在要在其中执行搜索的字符串中未找到要搜索的字符串,该函数将返回值 0。 expr1 是求值结果为字符串的任意表达式。它标识要搜索的字符串。 expr2 是求值结果为字符串的任意表达式。 它标识要在其中执行搜索的字符串。 |
|
LOCATEN |
|
与 LOCATE 类似,返回字符串在另一个字符串中的位置,以数字表示。LOCATEN 包括整数参数,用于指定开始搜索的起始位置。 expr1 是求值结果为字符串的任意表达式。它标识要搜索的字符串。 expr2 是求值结果为字符串的任意表达式。它标识要在其中执行搜索的字符串。 integer 是任意非零正整数,它表示开始搜索字符串的位置。 |
|
LOWER |
|
将字符串转换成小写字母。 expr 是求值结果为字符串的任意表达式。 |
|
OCTET_LENGTH |
|
返回指定字符串的字节数。 expr 是求值结果为字符串的任意表达式。 |
|
POSITION |
|
返回 strExpr1 在字符串表达式中的位置,以数字表示。如果未找到 strExpr1,该函数将返回 0。 expr1 是求值结果为字符串的任意表达式。它标识要在目标字符串中搜索的字符串。例如 "d"。 expr2 是求值结果为字符串的任意表达式。它标识要在其中执行搜索的目标字符串。例如 "abcdef"。 |
|
REPEAT |
|
将指定的表达式重复 n 次。 expr 是求值结果为字符串的任意表达式 integer 是任意正整数,它表示字符串的重复次数。 |
|
REPLACE |
|
将指定字符表达式中的一个或多个字符替换为一个或多个其他字符。 expr1 是求值结果为字符串的任意表达式。这是要替换其中字符的字符串。 expr2 是求值结果为字符串的任意表达式。第二个字符串标识要从第一个字符串中替换掉的字符。 expr3 是求值结果为字符串的任意表达式。第三个字符串指定要替换到第一个字符串中的字符。 |
|
RIGHT |
|
返回从字符串右侧算起的指定字符数。 expr 是求值结果为字符串的任意表达式。 integer 是任意正整数,它表示从字符串右侧开始返回的字符数。 |
|
SPACE |
|
插入空格。 integer 是任意正整数,它指示要插入的空格数。 |
|
SUBSTRING |
|
从固定字符数开始在原始字符串中创建新字符串。 expr 是求值结果为字符串的任意表达式。 startPos 是任意正整数,它表示从字符串左侧数起的第几个字符处开始生成结果。 |
|
SUBSTRINGN |
|
与 SUBSTRING 类似,从原始字符串的固定字符数开始,创建一个新字符串。 SUBSTRINGN 包括一个整数参数,可用于指定新字符串的长度,以字符数为单位。 expr 是求值结果为字符串的任意表达式。 startPos 是任意正整数,它表示从字符串左侧数起的第几个字符处开始生成结果。 |
|
TrimBoth |
|
从字符串中删除指定的前导和尾随字符。 char 是任意单个字符。如果忽略此规范 (以及所需的单引号),则使用空白字符作为默认值。 expr 是求值结果为字符串的任意表达式。 |
|
TRIMLEADING |
|
从字符串中删除指定的前导字符。 char 是任意单个字符。如果忽略此规范 (以及所需的单引号),则使用空白字符作为默认值。 expr 是求值结果为字符串的任意表达式。 |
|
TRIMTRAILING |
|
从字符串中删除指定的尾随字符。 char 是任意单个字符。如果忽略此规范 (以及所需的单引号),则使用空白字符作为默认值。 expr 是求值结果为字符串的任意表达式。 |
|
UPPER |
|
将字符串转换成大写字母。 expr 是求值结果为字符串的任意表达式。 |
|
下面的这些提示可帮助您在处理工作簿中的字符串时使用 LISTAGG 函数获得最佳结果。例如,您可能想要创建一个包含数据列中所有城市的字符串。
连接多个值:
可使用 LISTAGG 连接多个字符串值并将其放置在一个单元格和一行中。
LISTAGG([DISTINCT] <column to concatenate> BY <grouping column>) ON OVERFLOW TRUNCATE
DISTINCT
— 如果值不唯一,可使用此参数删除重复值。ON OVERFLOW TRUNCATE
— 如果结果超过允许的最大长度,可使用此参数截断返回的字符串。Number City State 12 New York New York 14 New York New York 30 Boston Massachusetts 18 Salem Massachusetts 12 Buffalo New York 10 Buffalo New York 20 Albany New York
示例命令和输出
LISTAGG(City, ', ')
输出 "New York, New York, Boston, Salem, Buffalo, Buffalo, Albany"
LISTAGG(DISTINCT City, ', ')
输出 "New York, Boston, Salem, Buffalo Albany"
LISTAGG(City, ', ' ON OVERFLOW TRUNCATE '...')
输出 "New York, New York, Boston, Salem, Buffalo, ..."
USER
系统函数返回与会话相关的值。例如,用于登录的用户名。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
DATABASE |
返回您登录到的主题区域的名称。 |
|
|
USER |
返回您登录的语义模型的用户名。 |
|
使用时间序列函数,您可以基于时间维聚合和预测数据。例如,您可以使用 AGO 函数计算一年前的收入。
时间维成员不能高于函数的级别。因此,必须在查询中投影唯一标识位于给定级别或在给定级别之下的成员的一个或多个列。
函数 | 示例 | 说明 | 语法 |
---|---|---|---|
AGO |
|
计算某个度量在指定的过去时段内的聚合值。例如,要计算一年前的每月收入,可使用 |
其中:
|
PERIODROLLING |
|
计算在距当前时间 x 个时间单位(开始时间)到 y 个时间单位(结束时间)这一时段内的度量聚合。例如,使用 |
其中:
|
TODATE |
|
计算某个度量从某个时段的开始到最新时段的聚合值,例如,年初至今的计算。 例如,要计算年初至今销售额,可使用 |
其中:
|