运算符
1.arg1 AND arg2
若表达式两侧的条件均为真,则返回true。
2.aggregate_function ( expression AUTO )
与summary 表达式配合使用,用于定义要根据查询中的分组列进行调整的范围。
3.名称 BETWEEN 值 1 and 值 2
确定某个值是否在给定范围之内。
4.CASE expression { WHEN expression THEN expression } [ ELSE expression ]
END
与When、Then、Else 及End 配合使用。
5.string1 CONTAINS string2
确定某个字符串是否包含另一个字符串。
6.lookup(....) in (....) DEFAULT(....)
与LOOKUP 句型结构配合使用。
7.DISTINCT dataItem
聚合表达式中的关键字,仅包括与众不同的值。另请参见unique 函数。
示例:count ( DISTINCT [OrderDetailQuantity] )
结果:1704
8.IF (condition) THEN .... ELSE (expression) , 或CASE .... ELSE
expression END
与If 或Case 句型结构配合使用。
9.CASE .... END
与Case When 句型结构配合使用。
10.string1 END WITH string2
确定某一字符串是否以给定的字符串结尾。
11.aggregate_function ( expression FOR expression { , expression } ) 与summary 表达式配合使用,用于定义查询中聚合的范围。
12.aggregate_function ( expression FOR ALL expression { , expression } )
与summary 表达式配合使用,其定义的范围将是查询中所有指定的分组列。另请参阅FOR 语句。
13.aggregate_function ( expression FOR ANY expression { , expression } )
与summary 表达式配合使用,用于定义要根据查询中的分组列子集进行调整的范围。与FOR 语句等效。
14.aggregate_function ( expression FOR REPORT )
与summary 表达式配合使用,用于定义要作为整个查询的范围。另请参阅FOR 语句。
15.IF(条件为真)THEN(操作)ELSE(替代操作)
与Then 和Else 配合使用。
16.exp1 IN (exp_list)
确定某个值是否存在于给定的值列表中。
17.expression IN_RANGE { constant : constant [ , constant : constant ] } 确定某个项目是否存在于给定的常数值或范围列表中。
18.value IS MISSING
确定某个值是否在数据中未定义。
19.value IS NOT MISSING
确定某个值是否已在数据中定义。
20.value IS NOT NULL
确定某个值是否已在数据中定义。
21.value IS NULL
确定某个值是否在数据中未定义。
22.string1 LIKE string2
确定某一字符串是否与另一字符串的样式匹配。
23.LOOKUP (name) in (value1 --> value2) default (expression)
查找数据并用指定的值替换。非常适合使用CASE 句型结构。
示例:lookup([Country]) in ('Canada'-->([List Price] * 0.60), 'Australia'-->([List Price] * 0.80)) default([List Price])
24.NOT arg
若条件为假,则返回true;否则返回false。
25.arg1 OR arg2
若表达式两侧的任一条件为真,则返回true。
26.summary ([expression] PREFILTER)
在应用汇总过滤器之前执行汇总计算。
27.count(ROWS)
计算由查询输出的行数。与Count() 配合使用。
28.string1 STARTS WITH string2
确定某一字符串是否以给定字符串开头。
29.IF (condition) THEN ...., 或 CASE expression WHEN expression THEN ....
END
与If 或Case 句型结构配合使用。
30.CASE [expression] WHEN .... END
与Case 句型结构配合使用。
31.string1 || string2
连接字符串。
汇总函数
此列表包含预定义的函数,可返回一组相关值的单个汇总值或一组相关值中每个实例的不同汇总值。
1.aggregate ( expr [ auto ] )
aggregate ( expr for [ all | any ] expr { , expr } )
aggregate ( expr for report )
根据表达式的聚合类型,返回使用相应的聚合函数计算得出的值。
2.average ( [ distinct ] expr [ auto ] )
average ( [ distinct ] expr for [ all | any ] expr { , expr } )
average ( [ distinct ] expr for report )
返回选定数据项的平均值。关键字distinct 可用于与以前产品版本中使用的表达式兼容。示例:average ( Sales )
结果:所有Sales 值的平均值。
3.count ( [ distinct ] expr [ auto ] )
count ( [ distinct ] expr for [ all | any ] expr { , expr } )
count ( [ distinct ] expr for report )
返回选定数据项的数量,但不包括NULL 值。关键字distinct 可用于与以前产品版本中使用的表达式兼容。
示例:count ( Sales )
结果:Sales 之下条目的总数。
4.maximum ( [ distinct ] expr [ auto ] )
maximum ( [ distinct ] expr for [ all | any ] expr { , expr } )
maximum ( [ distinct ] expr for report )
返回选定数据项的最大值。关键字distinct 可用于与以前产品版本中使用的表达式兼容。
示例:maximum ( Sales )
结果:所有Sales 值中的最大值。
5.median ( expr [ auto ] )
median ( expr for [ all | any ] expr { , expr } )
median ( expr for report )
返回选定数据项的中间值。
6.minimum ( [ distinct ] expr [ auto ] )
minimum ( [ distinct ] expr for [ all | any ] expr { , expr } )
minimum ( [ distinct ] expr for report )
返回选定数据项的最小值。关键字distinct 可用于与以前产品版本中使用的表达式兼容。
示例:minimum ( Sales )
结果:所有Sales 值中的最小值。
7.moving-average ( numeric_expr , numeric_expr [ at exp {, expr } ]
[
moving-average ( [ distinct ] numeric_expr , numeric_expr [
按行返回指定的一组值在指定行数上的移动平均值。
示例:moving-average ( Qty, 3 )
结果:对于每一行,将会显示数量及当前行与前两行的移动平均值。
数量Moving-Average (Qty, 3)
------------------------------------------
200 NULL
700 NULL
400 433.3333
200 433.3333
200 266.6667
500 300.0000
8.moving-total ( numeric_expr , numeric_expr [ at exp {, expr } ]
[
moving-total ( [ distinct ] numeric_expr , numeric_expr [
按行返回指定的一组值在指定行数上的移动合计。
示例:moving-total ( Quantity, 3 )
结果:对于每一行,将会显示数量以及当前行与前两行的移动合计。
数量Moving-Total (Qty, 3)
--------------------------------------
200 NULL
700 NULL
400 1300
200 1300
200 800
500 900
9.percentage ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
percentage ( [ distinct ] numeric_expr [
返回选定数据项占合计值的百分比。
示例:percentage ( sales 98 )
结果:显示分配给每一销售代表的销售额占1998 年销售总额的百分比。
销售代表98 年度销售额Percentage
-------------------- -------------- ------------------
Bill Gibbons 60646 7.11%
Bjorn Flertjan 62523 7.35%
Chris Cornel 22396 2.63%
10.percentile ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
percentile ( [ distinct ] numeric_expr [
返回在100 范围内的某一值,用于表示等于或低于选定数据项的一部分所占的百分比。
示例:percentile ( sales 98 )
结果:对于每一行,显示那些等于或小于该行中数量值的行所占的百分比。
数量百分数(数量)
-----------------------
800 1
700 0.875
600 0.75
500 0.625
400 0.5
400 0.5
200 0.25
200 0.25
11.quantile ( numeric_expr, numeric_expr [ at exp {, expr } ]
[
quantile ( [ distinct ] numeric_expr, numeric_expr [
以指定范围的形式返回值的排名。它返回整数,以表示排名的任何范围,例如从1(最高)到100(最低)。
示例:quantile ( Qty, 4 )
结果:数量、数量值的秩以及数量值分成4 分位组(四分位数)。
数量Rank (Qty) Quantile (Qty, 4)
----------------------- -----------------------
800 1 1
700 2 1
600 3 2
500 4 2
400 5 3
400 5 3
200 7 4
200 7 4
12. quartile ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
quartile ( [ distinct ] numeric_expr [
返回某一值相对于一组值的排名,由1(最高)到4(最低)之间的整数表示。
示例:quartile ( Qty, 3 )
结果:它显示数量及数量值的四分位数,后者由1(最高)到4(最低)之间的整数表示。
数量Quartile (Qty)
---------------------------
450 1
400 1
350 2
300 2
250 3
200 3
150 4
100 4
13.rank ( expr [sort_order] {, expr [sort_order] } [ at exp {, expr } ]
[
rank ( [ distinct ] expr [sort_order] {, expr [sort_order] } [
返回选定数据项的排名值。如果两个或多个行排名相同,则排名值(也称为Olympic 排名)顺序中会存在一个缺口。
示例:rank ( sales 98 )
结果:对于每一行,将会显示1998 年度分配给每位销售代表的销售额所对应的排名值,并且当两行或更多行的排名相同时,会跳过一些排名值。
98 年度销售代表销售额排名
---------------- ----------- ------------
Bill Gibbons 60000 1
Bjorn Flertjan 50000 2
Chris Cornel 50000 2
John Smith 48000 4
14.running-average ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
running-average ( [ distinct ] numeric_expr [
按行返回一组值的运行平均值(包括当前行)。
示例:running-average ( Qty )
结果:对于每一行,将会显示数量以及当前行与前面行的运行平均值。
名称数量平均用于名称的Running-Average
------- --------------------------------------------------
Smith 7 5 7
Smith 3 5 5
Smith 6 5 5.33
Smith 4 5 5
Wong 3 4 3
Wong 5 4 4
15.running-count ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
running-count ( [ distinct ] numeric_expr [
按行返回一组值的运行计数(包括当前行)。
示例:running-count ( Qty )
结果:对于每一行,将会显示数量以及当前行位置的运行计数。
名称数量计数用于名称的Running-Count
------- --------------- --------------------------------------
Smith 7 4 1
Smith 3 4 2
Smith 6 4 3
Smith 4 4 4
Wong 3 3 1
Wong 5 3 2
16.running-difference ( numeric_expr [ at exp {, expr } ]
[
running-difference ( [ distinct ] numeric_expr [
按行返回一组值的运行差额,该运行差额为当前行的值与前面行(包括当前行)的值之间的差额。
示例:running-difference ( Qty )
结果:对于每一行,将会显示数量以及当前行的值与前面行的值之间的差额。
名称数量用于名称的Running-Difference
------- --------------------------------------------
Smith 7 NULL
Smith 3 -4
Smith 6 3
Smith 4 -2
Wong 3 -1
Wong 5 2
17.running-maximum ( numeric_expr [ at exp {, expr } ]
[
running-maximum ( [ distinct ] numeric_expr [
按行返回一组值的最大运行值(包括当前行)。
示例:running-maximum ( Qty )
结果:对于每一行,将会显示数量以及当前行与前面行的最大运行值。
名称数量最大值用于名称的Running-Maximum (Qty)
------- --------------------------------------------------
Smith 2 7 2
Smith 3 7 3
Smith 6 7 6
Smith 7 7 7
Wong 3 5 3
Wong 5 5 5
18.running-minimum ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
running-minimum ( [ distinct ] numeric_expr [
按行返回一组值的最小运行值(包括当前行)。
使用的表达式兼容。
示例:running-minimum ( Qty )
结果:对于每一行,将会显示数量以及当前行与前面行的最小运行值。
名称数量最小值用于名称的Running-Minimum (Qty)
------- ----- --------------------------------------------
Smith 7 2 7
Smith 3 2 3
Smith 6 2 3
Smith 2 2 2
Wong 4 3 4
Wong 5 3 4
19. running-total ( numeric_expr [ at exp {, expr } ] [
[ prefilter ] )
running-total ( [ distinct ] numeric_expr [
按行返回一组值的运行合计(包括当前行)。
用的表达式兼容。
示例:running-total ( Qty )
结果:对于每一行,将会显示数量以及当前行与前面行的运行合计。
名称数量合计用于名称的Running-Total (Qty)
------- -------------- --------------------------------------
Smith 2 18 2
Smith 3 18 5
Smith 6 18 11
Smith 7 18 18
Wong 3 12 3
Wong 5 12 8
20.standard-deviation ( [ distinct ] expr [ auto ] )
standard-deviation ( [ distinct ] expr for [ all | any ] expr { , expr } )
standard-deviation ( [ distinct ] expr for report )
返回选定数据项的标准偏差。关键字distinct 可用于与以前产品版本中使用的表达式兼容。示例:standard-deviation ( ProductCost )
结果:表明产品成本与平均产品成本之间偏差的值。
21.standard-deviation-pop ( [ distinct ] expr [ auto ] )
standard-deviation-pop ( [ distinct ] expr for [ all | any ] expr { , expr } )
standard-deviation-pop ( [ distinct ] expr for report )
计算总体标准偏差并返回总体方差的平方根。关键字distinct 可用于与以前产品版本中使用的表达式兼容。
示例:standard-deviation-pop ( ProductCost )
结果:总体方差的平方根值。
22.total ( [ distinct ] expr [ auto ] )
total ( [ distinct ] expr for [ all | any ] expr { , expr } )
total ( [ distinct ] expr for report )
返回选定数据项的合计值。关键字distinct 可用于与以前产品版本中使用的表达式兼容。示例:total ( Sales )
结果:所有Sales 值的合计值。
23.variance ( [ distinct ] expr [ auto ] )
variance ( [ distinct ] expr for [ all | any ] expr { , expr } )
variance ( [ distinct ] expr for report )
返回选定数据项的差量。关键字distinct 可用于与以前产品版本中使用的表达式兼容。
示例:variance ( ProductCost )
结果:表明产品成本与平均产品成本相差程度的值。
24.variance-pop ( [ distinct ] 表达式 [ auto ] )
variance-pop ( [ distinct ] expr for [ all | any ] expr { , expr } )
variance-pop ( [ distinct ] expr for report )
返回一组数字除去其中无效数字之后的总体方差。
示例:variance-pop ( Qty)
结果:对于每一行,将会显示一组数字除去其中无效数字之后的总体方差。
成员汇总
此列表包含预定义的函数,可返回一组成员的单个汇总值或一组成员中每个成员的不同汇总值。
25.aggregate ( < currentMeasure | expr > within set set_expr { ,
set_expr } )
aggregate ( < currentMeasure | expr > within < detail | aggregate > expr )
根据表达式的聚合类型,返回通过相应的聚合函数计算得出的值。
26.average ( < currentMeasure | expr > within set set_expr { , set_expr } )
average ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的平均值。
27.count ( < currentMeasure | expr > within set set_expr { , set_expr } )
count ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的数量,但不包括NULL 值。
28.maximum ( < currentMeasure | expr > within set set_expr { , set_expr } )
maximum ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的最大值。
29.minimum ( < currentMeasure | expr > within set set_expr { , set_expr } ) minimum ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的最小值。
30.percentage ( numeric_expr [ tuple member_expr {, member_expr } ]
within set set_expr {, set_expr } )
返回选定数据项占合计值的百分比。
示例:percentage ( [gosales].[sales measures].[quantity] tuple [gosales].[Staff].[].[department]->[West] within set children([gosales].[Staff].[].[Staff] )
31.percentile ( numeric_expr [ tuple member_expr {, member_expr } ]
within set set_expr {, set_expr } )
返回在100 范围内的某一值,用于表示等于或低于选定数据项的一部分所占的百分比。
32.quantile ( numeric_expr, numeric_expr [ tuple member_expr {,
member_expr } ] within set set_expr {, set_expr } )
返回指定范围的值的排名。它返回整数,用于表示排名的范围,例如从1(最高)到100(最低)。
33.quartile ( numeric_expr [ tuple member_expr {, member_expr } ] within
set set_expr {, set_expr } )
返回某一值相对于一组值的排名,由1(最高)到4(最低)之间的整数表示。
34.rank ( numeric_expr [ tuple member_expr {, member_expr } ] within
set set_expr {, set_expr } )
返回选定数据项的排名值。返回的排名类型(Olympic、密集或序列)取决于数据源。
示例:rank ( [gosales].[sales measures].[quantity] tuple [gosales].[Staff].[].[department]->[West] within set children([gosales].[Staff].[].[Staff] )
35.standard-deviation ( < currentMeasure | expr > within set set_expr
{ , set_expr } )
standard-deviation ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的标准偏差。
36. total ( < currentMeasure | expr > within set set_expr { ,
set_expr } )
total ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的合计值。
37.variance ( < currentMeasure | expr > within set set_expr { ,
set_expr } )
variance ( < currentMeasure | expr > within < detail | aggregate > expr )
返回选定数据项的差量。
句型结构
1.IF
示例:
IF ([Country] = 'Canada')
THEN ([List Price] * 0.60)
ELSE ([List Price])
2.IN_RANGE
指定一个或多个常量或范围。范围可为开区间。
示例:[gosales].[CONVERSIONRATE].[COUNTRYCODE] IN_RANGE { :30 , 40, 50, 999: }
3.CASE END
示例:
CASE
WHEN [Country] = 'Canada' THEN ([List Price] * 0.60)
WHEN [CountryCode] > 100 THEN [List Price] * 0.80
ELSE [List Price]
END
4.CASE END
示例:
CASE [Country]
WHEN 'Canada' THEN ([List Price] * 0.60)
WHEN 'Australia' THEN [List Price] * 0.80
ELSE [List Price]
END
业务日期/时间函数
此列表包含执行日期和时间计算的业务函数。
1._add_days ( date_exp, integer_exp )
依据将integer_exp 天添加至date_exp 之后所生成的第一个参数,返回日期或日期时间。示例:_add_days ( 2002-04-30 , 1 )
结果:2002-05-01
示例:_add_days ( 2002-04-30 12:10:10.000, 1 )
结果:2002-05-01 12:10:10.000
示例:_add_days ( 2002-04-30 00:00:00.000, 1/24 )
请注意,第二个自变量并非整数。这受某些数据库技术支持,并可以增加时间部分。
结果:2002-04-30 01:00:00.000
2._add_months ( date_exp, integer_exp )
依据将integer_exp 个月添加至date_exp 之后所生成的第一个参数,返回日期或日期时间。示例:_add_months ( 2002-04-30 , 1 )
结果:2002-05-30
示例:_add_months ( 2002-04-30 12:10:10.000, 1 )
结果:2002-05-30 12:10:10.000
3._add_years ( date_exp, integer_exp )
依据将integer_exp 年添加至date_exp 之后所生成的第一个参数,返回日期或日期时间。示例:_add_years ( 2002-04-30 , 1 )
结果:2003-04-30
示例:_add_years ( 2002-04-30 12:10:10.000 , 1 )
结果:2003-04-30 12:10:10.000
4._age (date_exp )
返回从当前日期减去date_exp 所得的数值。该值的格式为YYYYMMDD,其中YYYY 代表年数,MM 代表月数,DD 代表天数。
示例:Today's date=2003-02-05 _age ( 1990-04-30 )
结果:120906,即12 年、9 个月、6 天
5._day_of_week ( date_exp, integer )
返回周内某日的对应值(1 到7 之间),其中 1 为每周第一天,并由第二个参数(1 到7 之间,1 代表星期一,7 代表星期日)指明。注意,依据ISO 8601 标准,每周第一天为星期一,即日值为1。在北美地区,每周第一天为星期日,即日值为7。
示例:_day_of_week ( 2003-01-01, 1 )
结果:3
6._day_of_year ( date_exp )
返回date_ exp 中的日值在当年中的序数(1 到366)。亦称为Julian 日。
示例:_day_of_year ( 2003-03-01 )
结果:61
7._days_between ( date_exp1, date_exp2 )
返回表示两个日期表达式之间天数的正数或负数。如果date_exp1 < date_exp2,则结果为负数。
示例:_days_between ( 2002-04-30 , 2002-06-21 )
结果:-52
8. _days_to_end_of_month ( date_exp )
返回一个数值,指示在日期表达式所提供的月份中剩余的天数。
示例:_days_to_end_of_month ( 2002-04-20 14:30:22.123 )
结果:10
9._first_of_month ( date_exp )
依据将date_exp 转换成同年同月但将日值设为 1 的日期之后所得的参数,返回日期或日期时间。
示例:_first_of_month ( 2002-04-20 )
结果:2002-04-01
示例:_first_of_month ( 2002-04-20 12:10:10.000 )
结果:2002-04-01 12:10:10.000
10._last_of_month ( date_exp )
依据date_exp 中月份内的最后一天所对应的参数,返回日期或日期时间。
示例:_last_of_month ( 2002-01-14 )
结果:2002-01-31
示例:_last_of_month ( 2002-01-14 12:10:10.000 )
结果:2002-01-31 12:10:10.000
11._make_timestamp ( integer_exp1, integer_exp2, integer_exp3 )
返回由integer_exp1(年)、integer_exp2(月)及integer_exp3(日)构成的时间戳。
示例:_make_timestamp ( 2002 , 01 , 14 )
结果:2002-01-14 00:00:00.000
12._months_between ( date_exp1, date_exp2 )
返回表示date_exp1 与date_exp2 之间月数的正整数或负整数。如果date_exp1 < date_exp2,则返回负数。
示例:_months_between ( 2002-01-30, 2002-04-03 )
结果:2
13._week_of_year ( date_exp )
依据ISO 8601 标准,返回date_exp 中的周在当年的序数,其中本年的周 1 是本年含有星期四的第一周,即 1 月4 日所在的第一周。
示例:_week_of_year ( 2003-01-01 )
结果:1
14._years_between ( date_exp1, date_exp2 )
返回表示date_exp1 与date_exp2 之间年数的正整数或负整数。如果date_exp1 < date_exp2,则返回负值。
示例:_years_between ( 2003-01-30, 2001-04-03 )
结果:1
15._ymdint_between ( date_exp1, date_exp2 )
返回一个表示日期表达式date_exp1 和date_exp2 之间差值的数字。该值的格式为YYYYMMDD,其中YYYY 表示年数,MM 表示月数,DD 表示天数。
示例:_ymdint_between ( 1990-04-30 , 2003-02-05 )
结果:120906,即12 年、9 个月、6 天
块函数
此列表包含的函数用于访问集合的成员(通常在Analysis Studio 的上下文中)。
1._firstFromSet ( set_exp, numeric_exp_max , numeric_exp_overflow )
返回在集中找到的前几个(不超过numeric_exp_max + numeric_exp_overflow)成员。如果超过numeric_exp_max + numeric_exp_overflow,则只返回成员的最大数目。
2._remainderSet (member_exp, set_exp , numeric_exp )
当set_exp set 的大小大于numeric_exp 时,成员表达式将包括在返回的集中。