BIEE常用函数使用手册

1、AGGREGATE AT

此函数根据指定的级别聚合列。使用AGGREGATE AT 可确保始终在关键字AT 之后指定的级别执行度量聚合,而无论WHERE 子句如何。

语法

AGGREGATE(expr AT level [, level1, levelN])

其中:

expr 是至少引用一个度量列的任何表达式。

level 是要在其中聚合的级别。您可以选择性地指定多个级别。

您不能指定这样的级别:该级别源自的维所包含的级别将用作您在第一个参数中指定的度量的度量级别。例如,您不能以AGGREGATE(yearly_sales
AT month) 形式写入该函数,这是因为“month”源自的时间维与用作“yearly_sales”的度量级别的时间维相同。

以下示例显示了AGGREGATE AT 函数和示例结果:

SELECT month, year, AGGREGATE(sales AT Year)FROM timeseriestestingWHERE year = 1994 AND month = 12

由于AGGREGATE AT 运算符始终在谓词之前执行,因此它始终返回在关键字AT 后指定的时间级别的正确合计。

2、AVG

此函数计算结果集中表达式的平均值。它必须采用数值表达式作为参数。

请注意,AVG 的分母为聚合的行数。因此,在 Oracle Business Intelligence 中进行计算时,使用AVG(x) 通常是错误的。应当改为手动写入表达式,以便控制分子和分母 (x/y)。

语法

AVG(numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

3、COUNT

此函数计算表达式中包含非空值的行数。该表达式通常为列名,此种情况下,将返回该列中包含非空值的行数。

语法:

COUNT(expr)

其中:

expr 为任意表达式。

4、COUNTDISTINCT

此函数对COUNT 函数进行相异处理。

语法

COUNT(DISTINCT expr)

其中:

expr 为任意表达式。

5、COUNT(*)

此函数计算行数。

语法

COUNT(*)

例如,如果名为 Facts 的表包含 200,000,000 行,示例请求将返回显示的结果:

SELECT COUNT(*) FROM Facts

6、MAX

此函数计算符合数值表达式参数要求的行的最大值 (最大数值)。

语法

MAX(numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

7、STDDEV

此函数返回一组值的标准差。返回类型始终为双精度值。STDEV_SAMP 是STDDEV 的同义词。

语法

STDDEV([ALL | DISTINCT] numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

如果指定ALL,则会为数据集内的所有数据计算标准差。

如果指定DISTINCT,则会在计算中忽略所有重复项。

如果未指定任何内容 (默认值),则会考虑所有数据。

8、SUM

此函数计算通过累加符合数值表达式参数要求的所有值得出的总和。

语法

SUM(numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

9、TOPN

此函数按从 1 到 n 的顺序依次排列表达式参数中最大的 n 个值,1 对应于最大的数值。TOPN 函数基于结果集内返回的值运行。请求只能包含一个TOPN 表达式。

语法

TOPN(numExpr, integer)

其中:

numExpr 是求值结果为数值的任何表达式。

integer 是任意正整数。它表示结果集内显示的最高排名的数字,1 为最高排名。

10、MAVG

此函数计算结果集内最后 n 行数据 (包括当前行) 的移动平均值。

第一行的平均值等于第一行的数值表达式。第二行的平均值通过计算前两行数据的平均值得出。第三行的平均值通过计算前三行数据的平均值得出,依此类推,直到您到达第 n 行为止,第 n 行的平均值根据最后 n 行数据计算得出。

语法

MAVG(numExpr, integer)

其中:

numExpr 是求值结果为数值的任何表达式。

integer 是任意正整数。它表示最后 n 行数据的平均值。

11、MSUM

此函数计算最后 n 行数据 (包括当前行) 的移动总和。

第一行的总和等于第一行的数值表达式。第二行的总和通过计算前两行数据的总和得出。第三行的总和通过计算前三行数据的总和得出,依此类推。在您到达第 n 行以后,根据最后 n 行数据计算总和。

语法

MSUM(numExpr, integer)

其中:

numExpr 是求值结果为数值的任何表达式。

integer 是任意正整数。它表示最后 n 行数据的平均值。

12、RSUM

此函数根据迄今为止出现的记录来计算运行总和。第一行的总和等于第一行的数值表达式。第二行的总和通过计算前两行数据的总和得出。第三行的总和通过计算前三行数据的总和得出,依此类推。

语法

RSUM(numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

在 Answers 中,您还可以使用以下替代语法:

RSUM(expression1 [BY expression2[, expression3[, ...]]])

其中:

expression1, expression2, expression3 ... 可以是任何列引用或列引用中的算术表达式。

BY 子句导致RSUM 计算从任何BY 列值不同于上一行的行重新开始。

13、RCOUNT

此函数采用一组记录作为输入,并计算迄今为止出现的记录数量。

语法

RCOUNT(expr)

其中:

expr 是任何数据类型的表达式。

在 Answers 中,您还可以使用以下替代语法:

RCOUNT(expression1 [BY expression2[, expression3[, ...]]])

其中:

expression1, expression2, expression3 ... 可以是任何列引用或列引用中的算术表达式。

BY 子句导致RCOUNT 计算从任何BY 列值不同于上一行的行重新开始。

14、BIT_LENGTH

此函数返回指定字符串的长度,以位为单位。每个 Unicode 字符长度为 2 个字节 (相当于 16 位)。

语法

BIT_LENGTH(strExpr)

其中:

strExpr 是任意求值结果为字符串的表达式。

15、CHAR_LENGTH

此函数返回指定字符串的长度,以字符数为单位。字符串的长度不包括前导和尾随空白字符。

语法

CHAR_LENGTH(strExpr)

其中:

strExpr 是任意求值结果为字符串的表达式。

16、CONCAT

此函数有两种形式。第一种形式连接两个字符串。第二种形式使用字符串连接字符连接两个以上的字符串。

第 1 种形式 (连接两个字符串) 的语法

CONCAT(strExpr1, strExpr2)

其中:

strExprs 是求值结果为逗号分隔字符串的表达式。

此示例请求返回显示的结果。

SELECT DISTINCT CONCAT('abc', 'def') FROM employee
CONCAT('abc', 'def')

结果:

abcdef

第 2 种形式 (连接两个以上字符串) 的语法

CONCAT(strExpr1, strExpr2 || strExpr3)

其中:

strExprs 是求值结果为逗号分隔字符串和字符串连接运算符 || (双竖线) 的表达式。CONCAT 函数首先将 strExpr2 与 strExpr3连接在一起以生成中间字符串,然后将 strExpr1 和中间字符串连接在一起以生成最终字符串。

此示例请求返回显示的结果。

SELECT DISTINCT CONCAT('abc','def' || 'ghi') FROM employee

结果:

Abcdefghi

17、LEFT

返回从字符串左侧算起的指定字符数。

语法

LEFT(strExpr, integer)

其中:

strExpr 是任意求值结果为字符串的表达式。

integer 是任意正整数,它表示从字符串左侧开始返回的字符数。

18、LENGTH

此函数返回指定字符串的长度,以字符数为单位。返回的长度不包括任何尾随空白字符。

语法

LENGTH(strExpr)

其中:

strExpr 是任意求值结果为字符串的表达式。

19、LOCATE

此函数返回字符串在另一个字符串中的数字位置。如果在要在其中执行搜索的字符串中未找到要搜索的字符串,该函数将返回值0。

语法

LOCATE(strExpr1, strExpr2)

其中:

strExpr1 是任意求值结果为字符串的表达式。它标识要搜索的字符串。

strExpr2 是任意求值结果为字符串的表达式。它标识要在其中执行搜索的字符串。

此示例返回 4 作为字母 d 在字符串 abcdef 中的数字位置:

Locate('d', 'abcdef')

此示例返回 0,因为在要在其中执行搜索的字符串中找不到字母 g。

Locate('g', 'abcdef')

20、LOWER

此函数将字符串转换成小写字母。

语法

LOWER(strExpr)

其中:

strExpr 是任意求值结果为字符串的表达式。

21、REPEAT

此函数将指定的表达式重复 n 次。

语法

REPEAT(strExpr, integer)

其中:

strExpr 是任意求值结果为字符串的表达式。

integer 是任意正整数,它表示字符串的重复次数。

此示例重复 abc 四次:

REPEAT('abc', 4)

22、REPLACE

此函数将指定字符表达式中的一个或多个字符替换为一个或多个其他字符。

语法

REPLACE(strExpr1, strExpr2, strExpr3)

其中:

strExpr1 是任意求值结果为字符串的表达式。这是要替换其中字符的字符串。

strExpr2 是任意求值结果为字符串的表达式。第二个字符串标识要从第一个字符串中替换掉的字符。

strExpr3 是任意求值结果为字符串的表达式。第三个字符串指定要替换到第一个字符串中的字符。

在字符串 abcd1234 中,字符 123 将替换为字符串 zz:

Replace('abcd1234', '123', 'zz')

结果:

abcdzz423、RIGHT

此函数返回从字符串右侧算起的指定字符数。

语法

RIGHT(strExpr, integer)

其中:

strExpr 是任意求值结果为字符串的表达式。

integer 是任意正整数,它表示从字符串右侧开始返回的字符数。

此示例返回字符串 123456 最右侧的三个字符:

SELECT right('123456', 3) FROM table

结果:

456

24、SUBSTRING

此函数从固定字符数开始在原始字符串中创建新字符串。

语法

SUBSTRING(strExpr FROM starting_position)

其中:

strExpr 是任意求值结果为字符串的表达式。

starting_position 是任意正整数,它表示从字符串左侧数起的第几个字符处开始生成结果。

25、UPPER

此函数将字符串转换成大写字母。

语法

UPPER(strExpr)

其中:

strExpr 是任意求值结果为字符串的表达式。

26、ABS

此函数计算数值表达式的绝对值。

语法

ABS(numExpr)

其中:

numExpr 是求值结果为数值的任何表达式。

27、ROUND

此函数将数值表达式的值四舍五入到 n 位精度。

语法

ROUND(numExpr, integer)

其中:

numExpr 是求值结果为数值的任何表达式。

integer 是任意正整数,它表示精度的位数。

以下示例返回的结果为 2.17。

ROUND(2.166000, 2)

28、TRUNCATE

此函数截断小数,以返回从小数点开始算起的指定位数。

语法

TRUNCATE(numExpr, integer)

其中:

numExpr 是求值结果为数值的任何表达式。

integer 是任意正整数,它表示从小数点位置右侧返回的字符数。

以下示例返回 45.12:

TRUNCATE(45.12345, 2)

以下示例返回 25.12:

TRUNCATE(25.126, 2)

29、CURRENT_DATE

此函数返回当前日期。该日期由运行 Oracle BI Server 的系统确定。

语法

CURRENT_DATE

30、CURRENT_TIME

此函数返回当前时间。该时间由运行 Oracle BI Server 的系统确定。

语法

CURRENT_TIME(integer)

其中:

integer 是任意整数,它表示显示零点几秒的精度的位数。该参数是可选的;未指定该参数时,函数返回默认精度。

31、CURRENT_TIMESTAMP

此函数返回当前日期/时间戳。该时间戳由运行 Oracle BI Server 的系统确定。

语法

CURRENT_TIMESTAMP(integer)

其中:

integer 是任意整数,它表示显示零点几秒的精度的位数。该参数是可选的;未指定该参数时,函数返回默认精度。

32、NOW

此函数返回当前时间戳。NOW 函数等同于CURRENT_TIMESTAMP 函数。

语法

NOW()

33、QUARTER_OF_YEAR

此函数返回一个介于 1 和 4 之间的数字,该数字对应于指定日期位于一年中的哪一季度。

语法

QUARTER_OF_YEAR(dateExpr)

其中:

dateExpr 是求值结果为日期的任意表达式。

34、TIMESTAMPADD

此函数将指定的时间间隔数添加到指定的时间戳,并返回单个时间戳。

最简单的情况是,此函数根据时间间隔将指定的整数值与时间戳的适当组件相加。加一个星期时,会转换为加七天;而加一个季度时,会转换为加三个月。负的整数值会导致减去时间 (例如将时间倒推)。

指定的组件溢出 (例如超过 60 秒、24 小时、12 个月等) 时,会迫使在下一个组件中加上合适的时间量。例如,与时间戳的天组件相加时,此函数会考虑溢出,并且会计算特定月中的天数 (对于闰年,二月份会按 29 天计算)。

与时间戳的月组件相加时,此函数会验证生成的时间戳中的天组件是否有足够的天数。例如,将 1 个月与 2000-05-31 相加不会生成 2000-06-31,因为六月份没有 31 号。此函数会将天组件减少到该月的最后一天,在本示例中即为 2000-06-30。

对于月组件为二月并且天组件为 29 (即闰年中二月的最后一天) 的时间戳,与该时间戳的年组件相加时,会发生类似的问题。如果生成的时间戳不是闰年,则该函数会将天组件减少到 28。

这些操作符合 Microsoft SQL Server 以及 Oracle 数据库的本机 OCI 接口的行为。

语法

TIMESTAMPADD(interval, intExpr, timestamp)

其中:

interval 是指定的时间间隔。有效值为:

· SQL_TSI_SECOND

· SQL_TSI_MINUTE

· SQL_TSI_HOUR

· SQL_TSI_DAY

· SQL_TSI_WEEK

· SQL_TSI_MONTH

· SQL_TSI_QUARTER

· SQL_TSI_YEAR

intExpr 是求值结果为整数值的任意表达式。

BIEE11G常用函数及使用说明的更多相关文章

  1. mysql常用函数参考

    mysql常用函数参考   对于针对字符串位置的操作,第一个位置被标记为1. ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL, ...

  2. PHP 常用函数库和一些实用小技巧

    PHP 常用函数库和一些实用小技巧 作者: 字体:[增加 减小] 类型:转载   包括文件读取函式,文件写入函式,静态页面生成函式,目录删除函式等   文件读取函式 //文件读取函式 function ...

  3. 【转】JNI学习积累之一 ---- 常用函数大全

    原文网址:http://blog.csdn.net/qinjuning/article/details/7595104 本文原创,转载请注明出处:http://blog.csdn.net/qinjun ...

  4. PB常用函数

    弹出窗口:messagebox() 基本写法:Messagebox('标题','内容') 完整写法: MessageBox ( '标题','内容',图标,按键,默认值) (1)其中标题与内容为要显示的 ...

  5. JNI学习积累之一 ---- 常用函数大全

    主要资料来源: 百度文库的<JNI常用函数> . 同时对其加以了补充 . 要素  :1. 该函数大全是基于C语言方式的,对于C++方式可以直接转换 ,例如,对于生成一个jstring类型的 ...

  6. PB之常用函数

    原文网址:https://www.cnblogs.com/zhaoxiong/p/8082523.html PB之常用函数 弹出窗口:messagebox() 基本写法:Messagebox('标题' ...

  7. oracle常用函数及示例

    学习oracle也有一段时间了,发现oracle中的函数好多,对于做后台的程序猿来说,大把大把的时间还要学习很多其他的新东西,再把这些函数也都记住是不太现实的,所以总结了一下oracle中的一些常用函 ...

  8. 总结js常用函数和常用技巧(持续更新)

    学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...

  9. [转]SQL 常用函数及示例

    原文地址:http://www.cnblogs.com/canyangfeixue/archive/2013/07/21/3203588.html --SQL 基础-->常用函数 --===== ...

随机推荐

  1. C#编程总结(五)多线程带给我们的一些思考

    C#编程总结(五)多线程带给我们的一些思考 如有不妥之处,欢迎批评指正. 1.什么时候使用多线程? 这个问题,对于系统架构师.设计者.程序员,都是首先要面对的一个问题. 在什么时候使用多线程技术? 在 ...

  2. 【Java每日一题】20161207

    package Dec2016; public class Ques1207 { public static void main(String[] args) { new Test(); new Te ...

  3. Yii2框架打包成Phar包报错的经历

    以yii2为例 打包文件过程比较简单,但打包好以后简单测试yii命令,一直报错: PHP Fatal error: Uncaught yii\base\InvalidParamException: T ...

  4. eclipse新建maven项目(2)

    本篇博文是继续之前的博文eclipse新建maven项目(1),那篇博文不在随笔在文章中.首先按照之前那篇博文进行创建maven项目操作,一系列操作下来之后发现刷新项目后会报错: 别急哈,可以解决. ...

  5. Java经典实例:在正则表达式中控制大小写

    默认是:区分大小写的: 传递标志参数:Pattern.CASE_INSENSITIVE,以说明匹配时忽略大小写:如果你的代码运行在不同的地区那么你应该再添加一个Pattern.UNICODE_CASE ...

  6. Hadoop学习笔记1-如何简单布署hadoop

    企业机型配置: 选型标准:普通的,廉价的,标准的(容易替换的),工业化大规模生产的 CPU:支持多核CPU,如2个4核CPU 内存:16G以上,内存越大,常用数据都缓存在内存,提高速度 硬盘:不需RA ...

  7. Comparable与Comparator的区别

    Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 一.Com ...

  8. NotSerializableException解决方法

    NotSerializableException 问题描述: 想要写入对象的时候的时候回抛出NotSerializableException:类名 原因: 写入的对象没有序列化,即没有实现java.i ...

  9. JavaScript学习(1):基础

    这篇文章里,我们来聊一些JavaScript的基础知识. 1. 如何运行JavaScript? JavaScript是一种解释型的语言,它不需要提前编译.通常情况下,JavaScript会放在网页中, ...

  10. Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景

    Seen.js 渲染3D场景为 SVG 或者 HTML5 画布.Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象.所有这个库的其它组件都是不用关心将要渲染的 ...