Informatica 常用组件Aggregator之一 聚合表达式
转换类型:已连接、主动
聚合转换允许您执行聚合计算,比如平均值和总和。聚合转换与表达式转换不同,您可以使用聚合转换对多组执行计算。而表达式转换只允许您逐行地执行计算。
使用转换语言来创建聚合转换时,您可以使用条件子句过滤行,这比 SQL 语言更为灵活。
PowerCenter 执行其读取的聚合计算并存储聚合高速缓存中必需的数据组和行数据。
创建包含聚合转换的会话后,您可启用会话选项和增量聚合。当 PowerCenter Server 执行增量聚合时,它会通过映射传递新的源数据并使用历史高速缓存数据以增量执行新的计算。
设计器只允许聚合表达式出现在聚合转换中。聚合表达式可以包括条件子句和非聚合函数。还可以包括一个嵌入另一聚合函数的聚合函数,例如:
MAX( COUNT( ITEM ))
聚合表达式的结果因转换中使用的分组依据端口而异。例如,当 PowerCenter 计算以下不带已定义分组依据端口的聚合表达式时,它将会查找已售出项目的总量:
SUM( QUANTITY )
但是,如果您使用同一表达式并按 ITEM 端口分组,PowerCenter 将按项目返回已售出项目的总量。
您可以在任意输出端口创建聚合表达式并使用转换中的多个聚合端口。
聚合函数
可以使用聚合转换中的以下聚合函数。也可以将一个聚合函数嵌入另一个聚合函数。
- AVG
- COUNT
- FIRST
- LAST
- MAX
- MEDIAN
- MIN
- PERCENTILE
- STDDEV
- SUM
- VARIANCE
当您使用这些函数中的任意一个时,必须要在聚合转换的表达式中使用。
嵌套聚合函数
可以在聚合转换的不同输出端口中纳入多个单级别或多个嵌套函数。但是,您不能在聚合转换中同时纳入单级别和嵌套函数。因此,如果聚合转换在任意输出端口中包含单级别函数,您将无法在此转换的其它任意端口使用嵌套函数。当您在同一聚合转换中包含单级别和嵌套函数时,设计器将标记映射或映射组件为无效。如果您需要创建单级别函数和嵌套函数,请分别建立聚合转换。
条件子句
可以在聚合表达式中使用条件子句以减少在聚合中使用的行数。条件子句可以是任意求值为 TRUE 或 FALSE 的子句。
例如,可以使用以下表达式计算超过其季度限额的员工的总佣金:
SUM( COMMISSION, COMMISSION > QUOTA )
非聚合函数
可以在聚合表达式中使用非聚合函数。
以下表达式返回每个项目的最高已售出项目数(按项目分组)。如果未售出项目,表达式返回 0。
IIF( MAX( QUANTITY ) > 0, MAX( QUANTITY ), 0))
聚合函数中的空值
配置 PowerCenter 时,您可以选择希望 PowerCenter 处理聚合函数中空值的方式。您可以选择在聚合函数中将空值视为 NULL 或零。默认情况下,PowerCenter Server 在聚合函数中将空值视为 NULL
最新文章
- 总结shell
- SharePoint 2013配置 Workflow Manager
- G面经prepare: Android Phone Unlock Pattern
- x86_64 Ubuntu 14.04 LST安装gcc4.1.2 转载
- Struts2使用ModelDriven后JSON数据返回不正确
- Cocos移植到Android-Android.mk编译文件
- Linux操作系统定时任务系统Cron入门、PHP计划任务以及rpc示例
- Java 之final,static小结
- crash部分命令用法
- Eclipse的几个常用快捷键
- js小技巧:数组去重
- Node.js的安装以及Node.js的模块管理
- [Swift]LeetCode54. 螺旋矩阵 | Spiral Matrix
- 【redis持久化】redis持久化理解
- Java: |(或运算) 与 多选判断
- linux c语言开发工具
- 无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
- python sort、sorted
- Mysql 内部默认排序
- docker 创建elasticsearch集群镜像
热门文章
- thinkphp 5.0 lnmp环境下 无法访问,报错500(public目录)
- thinkphp中导入和使用阿里云OSSsdk
- 《Android源码设计模式》--原型模式
- 1010 Radix (25)(25 point(s))
- git 相关资料应当查看廖雪峰所写的网站
- [BZOJ5298][CQOI2018]交错序列(DP+矩阵乘法)
- Ajax 的概念及过程?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
- UVALive 5059 C - Playing With Stones 博弈论Sg函数
- poj 1328 Radar Installation 排序贪心