Abs
返回数据的绝对值
语法
Abs(numeric)或者Abs(tuple)
参数
数值或者元组
数学表达式
例:
- X为负数时,y=-x。如:x=-5时,y=5
- X为非负数时,y=x。如:x=5时,y=5;x=0时,y=0
备注
查询语句中只能在with member后使用
示例一
with member [科目].[x] as Abs(-600)
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50582],[场景].&[50685],[产品].&[50688],[期间].[2023年].[2023年1季度].[2023年3月])
运行结果:
产品: 不分
场景: 累计预算
期间: 2023年3月
组织: 北京总部本部
-----------------------------------------------------------------------------------------------------------------
取-600的绝对值给计算维度成员[x],返回结果为600。
示例二
with member [科目].[x] as Abs([科目].[管理费用合计].[工资-管理费用合计])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[期间].[2023年].[2023年1季度].[2023年2月])
运行结果:
产品: 不分
场景: 累计预算
期间: 2023年2月
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
[工资-管理费用合计]的值为-100,经过Abs函数取绝对值后,[x]的结果为100。
示例三
with member [科目].[x] as Abs([科目].[管理费用合计].[工会经费]-[科目].[管理费用合计].[职工教育经费])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[期间].[2023年].[2023年1季度].[2023年2月])
运行结果:
产品: 不分
场景: 累计预算
期间: 2023年2月
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年2月]的[工会经费]为2, [职工教育经费]为8,2减去8等于-6,再取绝对值,所以[x]的结果为6。
Aggregate
返回一个数字,该数字是通过对集合表达式返回的单元格进行聚合来计算的。如果没有提供数值表达式,此函数将使用为每个度量值指定的默认聚合操作符在当前查询上下文中聚合每个度量值。如果提供了数值表达式,此函数将首先计算指定集合中每个单元格的数值表达式,然后对其求和。
语法
AGGREGATE(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
(可选)如果指定了numeric_value,此函数将根据度量维度自带的聚合符做聚合;如果不指定,默认进行累加。
数学表达式(以聚合符为+时为例)
备注
当前度量的聚合方式支持+、-、*、/、%
示例一
with member [科目].[x] as Aggregate({[期间].[2023年].[2023年3季度].Children},[科目].&[50221])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
期间维度[2023年3季度]的子项[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50221]值分别为7、8、9,numeric_value的聚合方式为+,所以[x]的值为他们的求和,是24。
示例二
with member [科目].[x] as Aggregate({[期间].[2023年].[2023年3季度].Children}*{[科目].&[50221]})
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
期间维度[2023年3季度]的子项[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50221]值分别为7、8、9,未指定numeric_value默认进行累加,所以[x]的值为24。
Avg
计算集合并返回集合中单元格的非空值的平均值,即对集合中的度量值或对指定度量值(numeric_value)的平均值。
语法
AVG(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
(可选)如果指定了numeric_value,对集合中的度量值或对指定度量值(numeric_value)的平均值,若未指定,只对集合中的非空元组计算平均值。
数学表达式
示例一
with member [期间].[平均值x] as avg({[期间].&[50648],[期间].&[50649],[期间].&[50650]})
select
{[期间].[平均值x]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688],[版本].&[50672])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
【期间】维度的三个成员对应的单元格值-10000.00、4200.00、6800.00,所以求均值后为333.33
示例二
with member [期间].[平均值x] as avg({[期间].&[50648],[期间].&[50649],[期间].&[50650]},[版本].&[50672])
select
{[期间].[平均值x]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
【期间】维度的三个成员对应的单元格值-10000.00、4200.00、6800.00,所以求均值后为333.33
CoalesceEmpty
如果指定了一个或多个表达式,CoalesceEmpty函数将返回第一个表达式(从左到右)的数值,该数值可以解析为非空值。如果指定的表达式都不能解析为非空值,则函数返回空单元格值。通常,第二个表达式的值是替换第一个表达式为空时的值。
语法
CoalesceEmpty (value_expression (, value_expression)+ )
参数
Value_expression
至少有两个,以逗号分隔,可以是数值类型的,也可以是字符串类型的
备注
Value_expresssio对应的数值的类型必须一致,要么都是数值类型的,要么都是字符串类型的。
示例以数值类型的为例
示例一
with member [期间].[x] as CoalesceEmpty([期间].[2022年].[2022年2季度].[2022年4月],0.0)
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
由于[2022年4月]的值为空,从左到右取值,0.0为非空的值,所以返回0.0。
示例二
with member [期间].[x] as CoalesceEmpty([期间].[2022年].[2022年2季度].[2022年4月],[期间].[2022年].[2022年2季度].[2022年5月],0.0)
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
由于[2022年4月]、[2022年5月]的值均为空,从左到右取值,0.0为非空的值,所以返回0.0。
示例三
with member 期间].[x] as CoalesceEmpty([期间].[2022年].[2022年2季度].[2022年4月],[期间].[2022年].[2022年2季度].[2022年5月])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
由于从左到右取的值均为空,所以返回NaN。
示例四
with member [期间].[x] as CoalesceEmpty([期间].[2023年].[2023年2季度].[2023年4月],[期间].[2022年].[2022年2季度].[2022年5月])
select
{[期间].[x],[期间].[2023年].[2023年2季度].[2023年4月]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
由于从左到右取值,第一个[2023年4月]的值为7,所以返回7。
Correlation
返回在集合上计算的x-y值的相关系数
语法
CORRELATION(set, numeric_value [, numeric_value])
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,不指定x轴的值,使用指定集合中的单元格的当前上下文作为x轴的值。
数学表达式
求和符号省略了上下标
例:
4个样本点(2,4),(3,7),(4,8),(5,9)
代入公式中,求得结果值为0.96
示例一
with member [科目].[x] as Correlation({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221],[科目].&[50220])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),相关系数计算结果为0.96,和excel中结果相同。
示例二
with member [期间].[x] as Correlation({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),相关系数计算结果为0.96,和excel中结果相同。
示例三
with member [期间].[x] as Correlation({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),相关系数计算结果为0.96,和excel中结果相同。
Count
返回集合中单元格的数量,默认包括空单元格。有INCLUDEEMPTY参数则计数时包括空单元格,有EXCLUDEEMPTY参数则计数时不包括空单元格,
语法
COUNT(set [, [INCLUDEEMPTY] [, EXCLUDEEMPTY] ] )
参数
set
返回集的有效多维表达式 (MDX)。
INCLUDEEMPTY
(可选)指定参数后,效果和默认一样,包含空单元格。
EXCLUDEEMPTY
(可选)指定参数后,不包含空单元格。
数学表达式
无
示例一
with member [科目].[x] as Count({[期间].[2023年].Children}*{[科目].&[50220]})
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年]的子项共有4个,默认统计空单元格,所以返回结果为4。
示例二
with member [期间].[x] as Count([期间].[2023年].Children,INCLUDEEMPTY)
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
指定了INCLUDEEMPTY参数,效果和示例一一样,[2023年]的子项共有4个(统计空单元格),所以返回结果为4。
示例三
with member [期间].[x] as Count([期间].[2023年].Children,EXCLUDEEMPTY)
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
指定了EXCLUDEEMPTY参数,[2023年]的子项共有4个,3个单元格为空,所以返回结果为1。
Covariance
返回在集合上计算的x-y值构成的样本的协方差,不指定x轴的值,函数将y轴的值作为x轴的值参与计算。
语法
COVARIANCE(set, numeric_value [, numeric_value])
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,不指定x轴的值,函数将当前上下文中的度量维的成员作为x轴。
数学表达式
求和符号省略了上下标
例:
样本点(1,14.6),(4,2),(2,1),(63.6,7),(7,2),(1,1)
代入公式中,求得结果值为20.54
示例一
with member [科目].[x] as Covariance({[期间].[2023年].[2023年1季度].[2023年1月]:[期间].[2023年].[2023年2季度].[2023年6月]},[科目].&[50220],[科目].&[50221])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
由于期间维度[2023年1月]到[2023年6月]的[科目].&[50220]值为14.6、2、1、7、2、1,[科目].&[50221]值为1、4、2、63.6、7、1,样本点为(1,14.6),(4,2),(2,1),(63.6,7),(7,2),(1,1)所以临时变量[x]的值为20.54,和excel中结果一样。
示例二
with member [期间].[x] as Covariance({[期间].[2023年].[2023年1季度].[2023年1月]:[期间].[2023年].[2023年2季度].[2023年6月]},[科目].&[50220])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50584],[场景].&[50685],[产品].&[50688],[科目].&[50221])
运行结果:
产品: 不分
场景: 累计预算
科目: 差旅费
组织: 开发1部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,由于期间维度[2023年1月]到[2023年6月]的[科目].&[50220]值为14.6、2、1、7、2、1,[科目].&[50221]值为1、4、2、63.6、7、1,样本点为(1,14.6),(4,2),(2,1),(63.6,7),(7,2),(1,1)所以临时变量[x]的值为20.54,和excel中结果一样。
LinRegIntercept
计算集合的线性回归并返回回归线的x截距值,即b的值,y = ax + b。
语法
LINREGINTERCEPT(set, numeric_value [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,如果没有指定第二个数值表达式,函数将使用指定集合中单元格的当前上下文作为x轴的值。
数学表达式
例:
样本点(2,4),(3,7),(4,8),(5,9)
代入公式中,求得a的值为1.4
示例一
with member [科目].[x] as LinRegIntercept({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221],[科目].&[50220])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9)所以[x]的值为1.4,和excel中结果相同。
示例二
with member [期间].[x] as LinRegIntercept({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9)所以[x]的值为1.4,和excel中结果相同。
LinRegR2
计算维度组合的线性回归并返回决定系数R2
语法
LINREGR2 (set, numeric_value [, numeric_value])
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,如果没有指定第二个数值表达式,函数将使用指定集合中单元格的当前上下文作为x轴的值。
数学表达式
皮尔生(Pearson)乘积矩相关系数 r 的计算公式如下:
例:
样本点(4,2),(7,3),(8,4),(9,5)
代入公式中,求得a的值为0.91
示例一
with member [科目].[x] as LinRegR2({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50220],[科目].&[50221])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(4,2),(7,3),(8,4),(9,5)所以[x]的值为0.91,和excel中结果相同。
示例二
with member [期间].[x] as LinRegR2({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50220])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50221])
运行结果:
产品: 不分
场景: 累计预算
科目: 差旅费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(4,2),(7,3),(8,4),(9,5)所以[x]的值为0.91,和excel中结果相同。
LinRegSlope
计算集合的线性回归,并返回回归线上斜率的值,即a的值,y = ax + b。
语法
LINREGSLOPE(set, numeric_value [, numeric_value])
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,如果没有指定第二个数值表达式,函数将使用指定集合中单元格的当前上下文作为x轴的值。
数学表达式
求和符号省略了上下标
例:
样本点(2,4),(3,7),(4,8),(5,9)
代入公式中,求得b的值为1.6
示例一
with member [科目].[x] as LinRegSlope({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221],[科目].&[50220])
select
{[科目].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
期间: 期间不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),所以[x]的值为1.6,和excel中结果相同。
示例二
with member [期间].[x] as LinRegSlope({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 办公费
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),所以[x]的值为1.6,和excel中结果相同。
LinRegVariance
计算维度组合的线性回归并返回与回归线y = ax + b相关的方差SSR
语法
LINREGVARIANCE (set, numeric_value [, numeric_value])
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
第一个代表y轴,
numeric_value
(可选)第二个代表x轴,如果没有指定第二个数值表达式,函数将使用指定集合中单元格的当前上下文作为x轴的值。
数学表达式
例:
样本点(3,1),(4,2)(7,3),(8,4),(9,5)
计算出回归方程后计算预测值如下:
代入SSR计算公式后,求得SSR的值为9.55224
示例一
with member [期间].[x] as LinRegVariance({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221],[科目].&[50220])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
科目: 科目不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),所以[x]的值为12.8,和excel中结果相同。
示例二
with member [期间].[x] as LinRegVariance({[期间].[2023年].[2023年2季度].[2023年6月]:[期间].[2023年].[2023年3季度].[2023年9月]},[科目].&[50221])
select
{[期间].[x]} on rows,
{[版本].&[50672]} on columns
from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50220])
运行结果:
产品: 不分
场景: 累计预算
科目: 科目不分
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
不指定第二个numeric_value,示例一指定的第二个numeric_value放在where后边的切片处,由于[2023年6月]、[2023年7月]、[2023年8月]、[2023年9月]的[科目].&[50220]的值分别为2、3、4、5,[科目].&[50221]的值分别为4、7、8、9,样本点为(2,4),(3,7),(4,8),(5,9),所以[x]的值为12.8,和excel中结果相同。
Max
返回在集合上求值的数值表达式的最大值。
语法
MAX(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
例:若干个单元格的值为7,15,9,13,则最大值为15
示例一
with member [期间].[Max] as Max({[期间].[2023年].[2023年3季度].Children},[版本].&[50672])
select
{[期间].[Max]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
由于[2023年3季度]的子项[2023年7月]、[2023年8月]、[2023年9月]对应的[科目].&[50236]的值分别为-10000、4200、6800,其中最大值为6800。
示例二
with member [期间].[Max] as Max({[期间].[2023年].[2023年3季度].Children})
select
{[期间].[Max]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688],[版本].&[50672])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
虽然没指定numeric_value,但是计算上下文和示例1是相同的(numeric_value移到了where后边的切片),所以结果也是相同的,最大值为6800.0
Median
返回在集合上求值的数值表达式的中位数。
语法
MEDIAN(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
例:若干个单元格的值为7,15,9,13,则中位数为(9+13)÷ 2 = 11
示例
with member [期间].[Median] as MEDIAN({[期间].[2023年].[2023年3季度].Children},[版本].&[50672])
select
{[期间].[Median]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
由于[2023年3季度]的子项[2023年7月]、[2023年8月]、[2023年9月]对应的[科目].&[50236]的值分别为-10000、4200、6800,其中中位数可以找到为4200.0
Min
返回在集合上求值的数值表达式的最小值。
语法
MIN(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
例:若干个单元格的值为7,15,9,13,则最小值为7
示例
with member [期间].[Min] as MIN({[期间].[2023年].[2023年3季度].Children},[版本].&[50672])
select
{[期间].[Min]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([科目].&[50236],[场景].&[50685],[产品].&[50688])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
由于[2023年3季度]的子项[2023年7月]、[2023年8月]、[2023年9月]对应的[科目].&[50236]的值分别为-10000、4200、6800,其中最小值可以找到为-10000.0。
Rank
默认返回维度组合中,某一个元组的位置(次序),若在最后添加度量维度(维度成员),则先按照降序排列,再返回元组的位置(等级)
语法
RANK(tuple, set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
(可选)不指定的话,返回tuple在set中的次序,不存在返回0;指定numeric_value,返回tuple的秩,即按照numeric_value求值后降序排列,秩依次为1、2、3…;如果有set中有重复项,秩表示例:1、2、2、4、4、4、7、8…
数学表达式
无
备注
若集合中多个元组的值相等,则位置顺序一样
示例1
with member [期间].[MyMember] as
rank (([期间].&[50641]),{[期间].[2023年].[2023年1季度].Children})
select
{[期间].[MyMember],[期间].&[50640],[期间].&[50641],[期间].&[50642]} on rows,
{[科目].&[50215]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[组织].&[50585])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
期间成员[2023年2月]位于集合[2023年1季度]中的第二个位置,所以结果为2
示例2
with member [期间].[MyMember] as
rank (([期间].&[50641]),{[期间].[2023年].[2023年1季度].Children},[组织].&[50585])
select
{[期间].[MyMember],[期间].&[50640],[期间].&[50641],[期间].&[50642]} on rows,
{[科目].&[50215]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[组织].&[50585])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
组织: 开发2部
-----------------------------------------------------------------------------------------------------------------
在期间维度[2023年1季度]集合中,[2023年1月]、[2023年2月]、[2023年3月]的值为200、-100、100,维度成员[2023年2月]在集合[2023年1季度]中按降序排列为3,所以所以结果为3。
Stdev
财务函数,返回数值表达式在集合上计算的样本标准差,使用无偏总体公式(除以n-1的那个公式)。
语法
STDEV(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
无偏的样本标准差计算公式如下:
求和符号省略了上下标
例: 若干个单元格的值为-10000,4200,6800
代入公式,结果值为9042.861
示例1
with member [期间].[MyMember] as
stdev ({[期间].[2023年].[2023年3季度].Children})
select
{[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
[期间]维度的[2023年3季度]的成员的子代有3个,所以样本值有3个,标准差维9042.86
示例2
with member [期间].[MyMember] as
stdev ({[期间].[2023年].[2023年3季度].Children},[科目].&[50236])
select
{[期间].[MyMember]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
[期间]维度的[2023年3季度]的成员的子代有3个,所以样本值有3个,标准差维9042.86
示例1中where切片中没有指定科目,但在numeric_value中指定了[科目].&[50236],所以示例2和示例1的计算上下文是相同的。所以结果也是一样的
Sum
此函数返回维度组合区域元组值的和
语法
SUM(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
例:若干个单元格的值为7,15,9,13,则和为7+15+9+13=44
示例1
with member [期间].[MyMember] as
stdev ({[期间].[2023年].[2023年3季度].Children},[科目].&[50236])
select
{[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
由于[2023年1季度]的子项中[2023年1月]、[2023年2月]、[2023年3月]的汇总值为26
示例2
with member [期间].[MyMember] as
sum ({[期间].[2023年].[2023年1季度].Children})
select
{[期间].[MyMember],[期间].&[50640],[期间].&[50641],[期间].&[50642]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
示例1指定的numeric_value([科目].&[50236])移到了where后边的切片中指定,所以两个示例的计算上下文是一致的,结果同样为26
Var
财务函数,返回数值表达式(numeric_value)在集合上计算的样本方差,使用无偏总体公式(除以n-1的那个公式)。
语法
VAR(set [, numeric_value] )
参数
set
返回集的有效多维表达式 (MDX)。
numeric_value
返回数字的有效数值表达式,通常为单元坐标的多维表达式 (MDX)。
数学表达式
无偏样本方差计算公式如下:
求和符号省略了上下标
例: 若干个单元格的值为-10000,4200,6800
i=1时,x=-10000;
i=2时,x=4200;
i=3时,x=6800;
x ̅=333.334
代入公式,结果值为81773333.33
示例1
with member [期间].[MyMember] as
var ({[期间].[2023年].[2023年3季度].Children},[科目].&[50236])
select
{[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
由于[2023年3季度]的子项中[2023年7月]、[2023年8月]、[2023年9月]的[研究开发费]的值分别为-10000、4200、6800,这三个值计算的方差为81773333.33,和excel中同名函数值相同。
示例2
with member [期间].[MyMember] as
var ({[期间].[2023年].[2023年3季度].Children})
select
{[期间].[MyMember],[期间].&[50648],[期间].&[50649],[期间].&[50650]} on rows,
{[组织].&[50582]} on columns
from [模型一]
where ([场景].&[50685],[产品].&[50688],[版本].&[50672],[科目].&[50236])
运行结果:
产品: 不分
场景: 累计预算
版本: 年初编报01版本
科目: 研究开发费
-----------------------------------------------------------------------------------------------------------------
示例1指定的numeric_value由函数处移到了where后边的切片中,因此和示例的计算上下文相同,结果也是一致。
版权声明:
1、本文档所有内容文字资料, 版权均属北京智达方通科技有限公司所有,任何企业、媒体、网站或个人未经本公司协议授权不得转载、链接、转发或以其他方式复制、发布/发表。已经本公司协议授权的媒体、网站,在下载使用时必须注明来源,违者本公司将依法追究责任。
2、对不遵守本声明或其他违法、恶意使用本公司内容者,本公司保留追究其法律责任的权利。