聚合转换功能类似于sql语句中的聚合函数。它应用列值,并将结果作为新列复制到转换输出中。聚合转换支持下列运算功能
运算 | 说明 |
Group by | 将数据集划分为组。任何数据类型的列都可用于分组。 |
Sum | 对列中的值求和。只能对数值数据类型的列求和。 |
Average | 返回列中值的平均值。只能对数值数据类型的列求平均值。 |
Count | 返回组中项目的数量。 |
Count distinct | 返回组中的唯一非空值的数量。 |
Minimum | 返回组中的最小值。 |
Maximum | 返回组中的最大值。 |
添加并配置聚合转换,则包必须已含有至少一个数据流任务和一个数据源。这里已一个简单的例子来介绍一下如何配置聚合转换。本例子的内容为:聚合每个订单的总金额。如果用T-SQL的话也就一个语句就可以了:
select SalesOrderID,SUM(OrderQty*UnitPrice) amount from Sales.SalesOrderDetail
现在介绍通过聚合转换如何获取同样的结果。
- 在BIDS中,打开包含所需包的Integration Services 项目。
- 在解决方案资源管理器中的SSIS包文件创建一个名为AggrationDemo的包,可以看到如下结果
- 在AggregationDemo包控制流选项卡中拖放一个数据流任务,如图
- 在连接管理器中窗口中,创建一个OLEDB连接器连接本地数据库AdventureWorks、一个平面文件连接器连接C:\Users\zhuyujing\Desktop\test.txt。如图:
- 在数据流选项卡中,托动一个OLE DB源、派生列、聚合转换以及目标平面文件。如图:
各个控件配置如下:
- OLE DB源
- 派生列
- 聚合转换
其中在比较标志列表中有四个复选框。表示的含义如下:
比较选项 | 说明 |
忽略大小写 | 指定比较是否区分大小写字母。如果设置了此选项,字符串比较会忽略大小写。例如,"ABC" 和 "abc" 没有区别。 |
忽略假名类型 | 指定比较是否区分日语的两种假名字符类型:平假名和片假名。如果设置了此选项,字符串比较会忽略假名类型。 |
忽略字符宽度 | 指定比较是否区分字符的单字节形式和该字符的双字节形式。如果设置了此选项,字符串比较将把同一字符的单字节形式和双字节形式视为相同。 |
忽略非空格字符 | 指定比较是否区分空格字符和标注字符。如果设置了此选项,则比较会忽略标注字符。例如,"å" 与 "a" 相同。 |
- 目标平面文件
配置好控件阿任务后,执行该包。执行结果如下:
打开目标txt文本,看看执行的结果