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文档: 释放归档: 进入目录管理器,离线方式登陆, ...
随机推荐
- Web API实现POST报文的构造与推送
ASP.NET Web API实现POST报文的构造与推送 毕设和OAuth协议相关,而要理解OAuth协议就必须理解HTTP GET/POST方法.因此研究了一下如何使用Web API或MVC构 ...
- DOM(二) 判断节点包含关系
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Stimulsoft.Report.net报表简单实用
1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...
- Elmah错误日志工具
Elmah错误日志工具 Exception 对于异常的处理,以前基本就是跳转到一个自定义的错误页面,觉得这样不错挺友好的.同时还是需要记录下来这些异常,才能进一步的进行修改. 怎么去记录这些错误信息呢 ...
- Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext
Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext 背景 之前写过两篇文章介绍模型的合法性: DDD:关于模型的合法性,Entity.IsValid( ...
- Linux C编程一站式学习读书笔记——socket编程
前言 研一的时候写过socket网络编程,研二这一年已经在用php写api都快把之前的基础知识忘干净了,这里回顾一下,主要也是项目里用到了,最近博客好杂乱啊,不过确实是到了关键时刻,各种复习加巩固准备 ...
- 【Zookeeper】源码之序列化
一.前言 在完成了前面的理论学习后,现在可以从源码角度来解析Zookeeper的细节,首先笔者想从序列化入手,因为在网络通信.数据存储中都用到了序列化,下面开始分析. 二.序列化 序列化主要在zook ...
- 做个简单的Redis监控(源码分享)
Redis监控 Redis 是目前应用广泛的NoSQL,我做的项目中大部分都是与Redis打交道,发现身边的朋友也更多人在用,相对于memcached 来说,它的优势也确实是可圈可点.在随着业务,数据 ...
- 虚拟键盘冲击移动端fixed布局的解决方案
在做移动端业务开发时,会碰到fixed元素和输入框同时存在的情况.在手机软键盘唤起的情况下,会造成原本fixed定位的元素跟随软键盘而上浮,对整体布局造成冲击.来看这样一个栗子直观的感受一下这个bug ...
- 用Vue中遇到的问题和处理方法(一)
用Vue开发项目有一段时间,在实际项目中遇到一些问题,在里把问题记录下来,并附上解决方案,给遇到同样的问题的码友提供一个解决思路吧: 测试部抛出问题一:在Vue1.0路由vue-router中,当点击 ...