BIEE基本函数
一,TRIM ,去除空字符 TRIM(EXPR)
SUBSTRING("UT TIME"."月份" FROM 6 FOR 2)
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 是求值结果为整数值的任意表达式。
BIEE基本函数的更多相关文章
- Oracle Sales Cloud:报告和分析(BIEE)小细节2——利用变量和过滤器传参(例如,根据提示展示不同部门的数据)
在上一篇随笔中,我们建立了部门和子部门的双提示,并将部门和子部门做了关联.那么,本篇随笔我们重点介绍利用建好的双提示进行传参. 在操作之前,我们来看一个报告和分析的具体需求: [1] 两个有关联的提示 ...
- Matlab基本函数-conj函数
Matlab基本函数-conj函数 1.conj函数:用于计算复数的共轭值 2.用法说明:y=conj(x)函数计算复数x的共轭值.输出结果y的维数跟输入x的维数一致,返回值为:real(y)-i*i ...
- BIEE 10g 二次开发整理
近半年在公司做某个项目的时候,主要使用到了Oracle BIEE 10g这套工具.刚开始的时候,对OBIEE是七窍通了六窍,还是一窍不通. 现在已经摸索出些许门道,特整理出来:一来,备忘:二来,供大家 ...
- 在SQL中使用CLR提供基本函数对二进制数据进行解析与构造
二进制数据包的解析一般是借助C#等语言,在通讯程序中解析后形成字段,再统一单笔或者批量(表类型参数)提交至数据库,在通讯程序中,存在BINARY到struct再到table的转换. 现借助CLR提 ...
- Hello BIEE
这篇文章提供了一个Hello World式的例子,讲述如何创建一个最简单的BIEE资料库.本文使用的示例数据可以在从此链接下载:http://www.zw1840.com . 目录 创建资料库 创 ...
- Biee 11g权限详解
前言:BIEE11g的权限较之前10g版本有了较大的变化,最明显的地方就是构架上的变化,其与 Oracle Fusion Middleware Security 紧密的集成在了一起. 在开始之前先让我 ...
- Oracle BIEE启停脚本
作为BI的开发人员,经常启停BI服务在所难免,启动的过程又比较长,命令需要不同目录切换,简直烦死人呢, 特意整理了linux中的启动脚本,将以下脚本存成biee.sh,后面的过程就相当简单了, 启动: ...
- Biee 迁移和刷新GUIDs
Biee11g迁移 与刷新 一.停止biee服务 二.备份文件 1. rpd文件夹路径: biee_home\instances\instance1\bifoundation\Oracle ...
- BIEE 目录迁移(文件夹)方式
文件夹迁移方式一(归档--取消归档): 归档:analytics中选择目录,定位至指定文件夹,更多中选择归档,保存为 .catalog文档: 释放归档: 进入目录管理器,离线方式登陆, ...
随机推荐
- java class load
https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=403638649&idx=2&sn=4f17e8b58c64875 ...
- Word文档合并
Word文档合并的一种实现 今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这 ...
- IEnumerable实践应用
1.集合想要支持foreach方式遍历,需要返回一个迭代器(IEnumerator),foreach会自动调用迭代器的状态迁移(MoveNext().Curent.Reset()) #region A ...
- C# 线程的定义和使用
C# 线程的定义和使用 一.C# Thread类的基本用法 通过System.Threading.Thread类可以开始新的线程,并在线程堆栈中运行静态或实例方法.可以通过Thread类的的构造方法传 ...
- Asp.net MVC4 CodeFirst 使用EFTracingProvider
一.关于EFTracingProvider EFTracingProvider相关信息见作者博客:关于EFTracingProvider EFTracingProvider Demo下载地址:Trac ...
- Stub和Mock的理解
我对Stub和Mock的理解 介绍 使用测试驱动开发大半年了,我还是对Stub和Mock的认识比较模糊,没有进行系统整理. 今天查阅了相关资料,觉得写得很不错,所以我试图在博文中对资料进行整理一下,再 ...
- .Net 异步随手记(一)
今天要记录的内容摘要是: 什么时候异步代码能“等”在那里,什么时候不会“等” 这两天Coding的时候碰到一个事儿,就是想让异步等在那里结果却直接执行过去了,比如这样: async static vo ...
- FAQ:仓储实现为什么在基础设施层?
FAQ:仓储实现为什么在基础设施层? 目录 问答部分参考文章 问答部分返回目录 问: 仓储实现为什么在基础设施层? 答: 领域模型包含三种元素:实体.值对象和服务,这三种元素都可以以某种形式使用仓储, ...
- 在C#中模拟Javascript的setTimeout方法
在C#中模拟Javascript的setTimeout方法 背景 每种语言都有自己的定时器(Timer),很多人熟悉Javascript中的setInterval和setTimeout,在Javasc ...
- 设计模式——(Abstract Factory)抽象工厂
设计模式——(Abstract Factory)抽象工厂 设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难.你必须设计相关类,并设计类的接口和继承之间的关系.设计必须可以解决当前问题,同 ...